いくつかのパッケージ ソース (例: foo-[ver].orig.tar.gz、foo-[ver].dsc) をダウンロードすると、使用中に依存関係の問題が発生することがよくdpkg-source -x foo-[ver].dsc
ありdpkg-buildpackage -us -uc ...
ます。この場合、ビルドの依存関係を 1 つずつインストールする必要があります。このケースを自動的に処理するツールはありdpkg-source-dependencies -x foo-[ver].dsc
ますか?
4 に答える
パッケージをビルドしようとすると、次のようにしてすべての依存関係を取得する必要があります。
apt-get build-dep [package-name]
また、apt-get は、必要に応じてソース パッケージをコンパイルできます。
apt-get --build [package-name]
これにはいくつかの方法があります(他の回答からわかるように)。すでにリポジトリの一部であるパッケージの場合は、次を使用できます。
apt-get build-dep pkgname
ローカル パッケージの場合、次のいずれかです。
apt-get build-dep source-dir/
apt-get build-dep source-name.dsc
/usr/lib/pbuilder/pbuilder-satisfydepends* --control source-name.dsc
mk-build-deps --install source-name.dsc
pbuilder build source-name.dsc
sbuild source-name.dsc
おそらく他の解決策がありますが、上記が最も広く使用されています。
pbuilder
は、この仕事のための単なるツールです。pbuilder
インストール時に tarball に最小限のディストリビューションをセットアップします。ファイルをビルドする.dsc
には、ファイルをpbuilder
提供して tarballを解凍し、chroot
必要なすべてのビルド依存関係をインストールして、パッケージをコンパイルします。この手順の結果、ビルド結果はホスト マシンの現在の構成から独立しています。
Build-Depends を debian/control から抽出し、その後 apt でインストールします。いくつかの標準パッケージは Build-Depends として言及されておらず (build-essentials など)、debuild から暗黙的に必要とされます。
pkgs=$(grep Build-Depends debian/control|sed 's/^Build-Depends: //g)
pkgs=$(echo $pkgs|sed "s/[() ]//g"|tr "," " ")
apt-get install $pkgs build-essential