次を使用してソースをパッケージにダウンロードしました:
$ 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
どうして?
Joeytwiddleの回答のおかげで、この問題の解決策を始めるのに最適な場所が得られました。
Debianパッケージを作成しようとしたPythonプロジェクトでは、以下を使用しています。
gitは.git
ディレクトリを作成し、pybuildは.pybuild
ディレクトリを作成し、PyCharmはすべてプロジェクトのルートに.idea
ディレクトリを作成します。
Joeytwiddleが、debuildは特定のファイル(彼の場合はswpファイル)を好まないと言ったので、隠しディレクトリにぴったりだと思いました。 gitでは次のことができることがわかりました:debuild -i
そしてpybuildおよびideaディレクトリに関してはバージョン管理ディレクトリを無視しますが、別のオプションはまだ見つかりません。 したがって、私のソリューションでは、プロジェクトを空のディレクトリにコピーし、.git
、.idea
、および.pybuild
ディレクトリを削除しましたおよび成功!
これは以前に何度も私をつまずかせました。ソースを変更した後にデビルドエラーが発生する理由は、ソースが変更された後、パッケージメンテナの署名(サインオフ)がそのソースに対して無効になったためだと時々考えました。
しかし実際には、この場合の答えは簡単でした。
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