変更されたパッケージをビルド解除しようとすると、「dpkg-source:表現できないソースへの変更」


8

ソースをパッケージにダウンロードしました:

$ apt-get source gkrellweather

また、コンパイルの依存関係があることも確認しました。

$ sudo apt-get build-dep gkrellweather

そして私はそれがうまく構築できることをテストしました:

$ cd gkrellweather-2.0.8
$ debuild

これは、構築された.deb、私が使用してインストールすることができ、上記フォルダ内のパッケージを、:

$ sudo dpkg -i ../gkrellweather*.deb

OK、すべてが整っています。始めましょう!

Vimでソースコードを開き、必要な変更を加えました。それから私は再構築しようとしました:

$ debuild

しかし、私は次のエラーを受け取りました:

...
dh_clean: Compatibility levels before 5 are deprecated (level 4 in use)
 dpkg-source -b gkrellweather-2.0.8
dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1)
dpkg-source: info: using source format `1.0'
dpkg-source: info: building gkrellweather using existing gkrellweather_2.0.8.orig.tar.gz
dpkg-source: info: building gkrellweather in gkrellweather_2.0.8-2.diff.gz
dpkg-source: error: cannot represent change to gkrellweather-2.0.8/.gkrellweather.c.swp: binary file contents changed
dpkg-source: warning: the diff modifies the following upstream files: 
 GrabWeather
 Makefile
 gkrellweather.c
dpkg-source: info: use the '3.0 (quilt)' format to have separate and documented changes to upstream files, see dpkg-source(1)
dpkg-source: unrepresentable changes to source
dpkg-buildpackage: error: dpkg-source -b gkrellweather-2.0.8 gave error exit status 1
debuild: fatal error at line 1357:
dpkg-buildpackage -rfakeroot -D -us -uc failed

どうして?

回答:


5

joeytwiddleの回答に感謝します。この問題の解決策を始めるのに最適な場所でした。

私がdebianパッケージを作成しようとした私のPythonプロジェクトでは、次のものを使用しています:

  • pybuildはdebuildを実行する前にdebianパッケージを準備します
  • バージョン管理用のgit
  • Python開発用のPyCharm IDE

gitは.gitディレクトリを作成し、pybuildは.pybuildディレクトリを作成し、PyCharmは.ideaすべてプロジェクトのルートにディレクトリを作成します。

joeytwiddleが、debuildが特定のファイル(彼の場合はswpファイル)を好まなかったと述べたので、おそらく隠しディレクトリに適していると感じました。gitの場合、次のことができることがわかりました。debuild -iバージョン管理ディレクトリは無視されます。pybuildおよびideaディレクトリについては、まだ別のオプションが見つかりません。だから私の解決のために、私は、空白のディレクトリに私のプロジェクトの上にコピー、削除.git.ideaおよび.pybuildディレクトリと成功!


3
-i通過しますdebuilddpkg-buildpackage、その後にdpkg-sourceその人のページの正規表現を提供することができると言い、。テストがなければ、-i'(^|/)\.(git|idea|pybuild)($|/)'うまくいくかもしれません。
joeytwiddle

3

これにより、以前に何度もつまずきました。ソースを変更した後のデビルドエラーの理由は、ソースを変更した後、パッケージメンテナの署名(サインオフ)がそのソースに対して有効ではなくなったためだと思いました。

しかし、実際にはこの場合の答えは簡単でした:

dpkg-source: error: cannot represent change to gkrellweather-2.0.8/.gkrellweather.c.swp: binary file contents changed

問題は、Vimがswafileを作成していて、それdebuildが気に入らなかったことです。

解決策は簡単でした:スワップファイルを削除すると、ビルドが機能します:

$ rm ./.gkrellweather.c.swp
$ debuild
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.