을 사용하여 소스에서 Debian 패키지를 빌드하고 싶습니다 dpkg-buildpackage
. 패키지 소스를 다운로드했습니다.
apt-get -t wheezy-backports source gnucash
문서를 보면 gnucash-2.6.9/configure
패키지를 빌드할 때 일부 옵션을 선택/선택 취소할 수 있다고 나와 있습니다.
데비안 관리자가 나를 대신해 결정을 내렸습니다. 하지만 특정 옵션을 비활성화하려면 어떻게 해야 합니까?
없이 컴파일하고 싶다고 가정해 보겠습니다 --enable-aqbanking
. 이 옵션은 여러 구성 파일에 나타납니다.
$ grep -rl enable-aqbanking gnucash-2.6.9/
gnucash-2.6.9/packaging/gnucash.spec
gnucash-2.6.9/packaging/gnucash.spec.in
gnucash-2.6.9/configure.ac
gnucash-2.6.9/configure
어느 것을 편집해야 합니까?
올바른 접근 방식은 무엇입니까?
답변1
gnucash-2.6.9/packaging/gnucash.spec
gnucash-2.6.9/packaging/gnucash.spec.in
데비안 패키지의 일부가 아닙니다 . 이는 RPM 형식으로 gnucash를 패키징하기 위한 프로젝트 자체 사양 파일(두 번째는 템플릿)입니다.
gnucash-2.6.9/configure.ac
또한 업스트림의 일부입니다. 이것은 빌드에 사용되는 Autoconf 파일입니다 gnucash-2.6.9/configure
. 이 autoconf.ac
파일은 데비안 패키지에서 사용되지만 패키지의 일부는 아닙니다.
debian/
모든 데비안 패키지는 이 하위 디렉터리에 있습니다 .
실제 빌드 스크립트(실제로는 Makefile)가 debian/rules
여기에서 관심을 가져야 할 전부입니다. 대부분의 데비안 패키지는debhelper
프로그램. 이 패키지 dh
는 debhelper
.
간단히 말해서 "전통적인" 작업 방식은 debhelper
처음부터 모든 작업을 수행하는 대신 패키지를 빌드하는 데 사용할 수 있는 표준 명령 세트를 제공하는 것입니다. 각 표준 단계에는 필요한 경우 재정의할 수 있는 기본값이 있는 dh
최신 변형입니다 . debhelper
이는 AP가 말한 것과 관련이 있다. 이 경우 규칙 파일은 기본 구성 단계를 재정의합니다. 그러므로. override_dh_auto_configure
구성 단계의 기능을 변경하려면 이 대상을 수정해야 합니다 . override_dh_auto_configure
목표 는 다음과 같습니다 .
override_dh_auto_configure:
dh_auto_configure -- \
--libdir=/usr/lib/$(DEB_HOST_MULTIARCH)/gnucash \
--infodir=/noinst \
--mandir=/noinst \
--docdir=/noinst \
--disable-static \
--enable-dbi \
--enable-ofx \
--enable-aqbanking \
--enable-locale-specific-tax \
--enable-python
그래서 이것은 dh_auto_configure
debhelper
목표를 초과했습니다. man dh_auto_configure
이 목표에 대한 자세한 정보를 확인하세요 .
이 경우 기본값은 인수 없이 실행 dh_auto_configure
되는 것입니다 . 즉, 재정의는 지정된 인수/옵션을 통해서만 실행됩니다. 따라서 여기서 매개변수/옵션을 제거해야 합니다 .configure
./configure
configure
--enable-aqbanking
다음은 dh에 관한 슬라이드입니다.네 할아버지의 Debhelper가 아니야. 온라인에 추가 정보가 있습니다.
답변2
좋아요, 한번 보세요 gnucash-2.6.x/debian/rules
.
표시된 줄 override_dh_auto_configure:
(내 경우에는 23번 줄)을 찾아 그 아래에 재정의를 추가하세요.
귀하의 경우 --enable-aqbanking
이미 존재하므로(적어도 wheeze 백포트의 경우) 삭제하면 됩니다.
자세한 내용은 다음에서 확인할 수 있습니다.매뉴얼 페이지.
고쳐 쓰다:또한 파일 rules
에 사용자 정의 콘텐츠를 configure
.DEB_CONFIGURE_EXTRA_FLAGS