1

Debian パッケージをビルドしようとしています。もう一度ビルドしようとすると、失敗しました。

私は持っている:

  1. /home/debpackage/debianpackage_1.0.orig.tar.gz
  2. 上記のtarには、という名前のフォルダーが含まれていますdebianpackage-1.0/(その中のあらゆる種類のパッケージ)
  3. 私はtarを抽出し、今持ってい /home/alon/debpackage/debianpackage_1.0.orig.tar.gz /home/alon/debpackage/debianpackage-1.0/ます(抽出されたすべてのファイル)

  4. /home/alon/debpackage/debianpackage-1.0/、「debian」というフォルダを作成しました

  5. in /home/alon/debpackage/debianpackage-1.0/I have: ./debian/changelog/copyright(空) ./debian/changelog/rules ./debian/changelog/changelog ./debian/changelog/compact(「8」を含む) ./debian/changelog/control ./debian/changelog/source/format(3.0 (キルト) を含む)

rules内容:

#!/usr/bin/make -f

%:
        dh $@

override_dh_auto_install:
        $(MAKE) DESTDIR=$$(pwd)/debian/debianpackage prefix=/usr install

を実行しようとすると./debian/debuild -us -uc、次のようになります。

dpkg-buildpackage -rfakeroot -D -us -uc
dpkg-buildpackage: warning: using a gain-root-command while being root
dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): 
dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2
dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): -Wl,-Bsymbolic-functions
dpkg-buildpackage: source package debianpackage
dpkg-buildpackage: source version 1.0-1
dpkg-buildpackage: source changed by root <alon.zeiri@gmail.com>
 dpkg-source --before-build debianpackage-1.0
dpkg-buildpackage: host architecture amd64
 fakeroot debian/rules clean
dh clean
dh: Compatibility levels before 5 are deprecated.
   dh_testdir
   dh_auto_clean
dh_auto_clean: Compatibility levels before 5 are deprecated.
   dh_clean
dh_clean: Compatibility levels before 5 are deprecated.
 dpkg-source -b debianpackage-1.0
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: building debianpackage using existing ./debianpackage_1.0.orig.tar.gz
dpkg-source: info: building debianpackage in debianpackage_1.0-1.debian.tar.gz
dpkg-source: info: building debianpackage in debianpackage_1.0-1.dsc
 debian/rules build
dh build
dh: Compatibility levels before 5 are deprecated.
   dh_testdir
   dh_auto_configure
dh_auto_configure: Compatibility levels before 5 are deprecated.
   dh_auto_build
dh_auto_build: Compatibility levels before 5 are deprecated.
   dh_auto_test
dh_auto_test: Compatibility levels before 5 are deprecated.
 fakeroot debian/rules binary
dh binary
dh: Compatibility levels before 5 are deprecated.
   dh_testroot
   dh_prep
dh_prep: Compatibility levels before 5 are deprecated.
   dh_installdirs
dh_installdirs: Compatibility levels before 5 are deprecated.
   debian/rules override_dh_auto_install
make[1]: Entering directory `/home/alon/debpackage/debianpackage-1.0'
/usr/bin/make DESTDIR=$(pwd)/debian/debianpackage prefix=/usr install
make[2]: Entering directory `/home/alon/debpackage/debianpackage-1.0'
make[2]: *** No rule to make target `install'.  Stop.
make[2]: Leaving directory `/home/alon/debpackage/debianpackage-1.0'
make[1]: *** [override_dh_auto_install] Error 2
make[1]: Leaving directory `/home/alon/debpackage/debianpackage-1.0'
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
debuild: fatal error at line 1335:
dpkg-buildpackage -rfakeroot -D -us -uc failed

何か案は?

4

3 に答える 3

1

なぜあなたdebian/changelogのディレクトリですか?debian/changelog/rulesanddebian/changelog/changelogなどは必要ありません。 debian/changelog(通常のファイル)のはずですがdebian/rulesdebian/control... ディレクトリ構造に問題が発生しています。

あなたがすべきcd debian; mv changelog oopsdir; mv -i oopsdir/* .;rmdir oopsdir

または、すべてを殺して最初からやり直すこともできます。なぜならchangelog、ディレクトリになる原因となった障害が他に何の影響も与えていないことを知ることができないからです。

于 2012-08-22T20:36:14.177 に答える
1

アップストリーム ソース (「debianpackage-1.0」) の makefile にはターゲットがないようですinstallが、override_dh_auto_installターゲットでdebian/rulesは明示的に呼び出しますmake install

可能な解決策:

  • installターゲットを debianpackage-1./Makefileに追加します

    アップストリームでない場合は、debian/patches のパスを介してこれを行う必要があります

  • override_dh_auto_installターゲットを使用して、ファイルを適切な場所に手動でインストールします

dh_auto_installところで、そもそもなぜオーバーライドするのですか?自動的に呼び出されないものを追加していないようです。

于 2012-08-21T14:08:41.040 に答える
0

cmakeの前にソースで実行すると、通常、このエラーが発生しますdebuilddebuild/dpkg-buildpackageクリーンなソースで実行する必要があるという点で非常に特殊です。dh_make --createorig手動で作成するのではなく、クリーンなソースを使用して、debian フォルダーとその内容を生成することをお勧めします。その後debuild、ソース アーカイブの作成者がコンパイル済みコードまたは自動生成ファイルを含めない限り、問題なく動作するはずです。

于 2016-08-30T16:48:34.177 に答える