インストールしたいプログラムのインストーラープログラムまたはソースtarballがあるとします。 (利用可能なDebianパッケージはありません。)最初に、.deb
パッケージを作成し、将来インストールされたプログラムをきれいに削除できるようにします( ソースからビルドされたアプリケーションのアンインストールを参照) 、 ソースからパッケージをビルドする場合、どうすれば完全にアンインストールまたは削除できますか? )。また、パッケージを使用してインストールすると、他のパッケージのファイルを上書きできなくなります。インストーラーまたはSudo make install
を実行した場合、これは保証できません。
そこや他の場所で答えを読むことから、私は通常の解決策を集めます checkinstall
を使用してパッケージをビルドすることです。残念ながら、checkinstall
は、notがmake install
が他のパッケージのシステムファイルを破壊するのを防ぐようです。たとえば、 gccビルドでのcheckinstallによって引き起こされる問題を元に戻す :
Sudo checkinstall -D make install
を使用して、インストールからDebianパッケージを作成しました。[...] Synaptic Package Managerを使用して削除しました。結局、
make install
から作成されたパッケージcheckinstallは、/ lib64/libgcc_s.soのような共有gccライブラリを含め、インストールプロセスが触れたすべてのファイルを削除しようとしました。
次に、問題を回避するために、パッケージをインストールせずにビルドするようにcheckinstall
に指示しようとしました。ダミーのMakefileを作成しました。
install:
echo "Bogus" > /bin/qwertyuiop
Sudo checkinstall --install=no
を実行しました。パッケージがインストールされていない場合でも、ファイル/bin/qwertyuiop
が作成されました。
私の場合、私はインストーラー/ make install
がシステムファイルを上書きしないことを信用していません、したがって、このcheckinstall
の使用は除外されます。
これを達成するために fakechroot
ed debootstrap 環境でCheckinstallを実行することは可能ですか?ビルドは、ルートではなく通常のユーザーとして実行することをお勧めします。これにより、プロセスが失敗した場合にシステムファイルが上書きされるのを防ぐことができます。
debuild
を試して、ソースからバイナリ(deb)ファイルを作成できます。パッケージ化するように、debianフォルダーを準備する必要があります。正しく設定できたら、ソースディレクトリ内からdebuild -b
コマンドを実行すると、debファイルが作成されます。
Debianパッケージング入門 もご覧ください。
それがすべておかしなものである場合は、システムファイルをいじるcheckinstall
で間に合わせる必要があります。
Linuxジャーナルの記事で 回答 が見つかりました。Checkinstallを使用してソースからパッケージをビルドする:
インストールを実行せずに.debを作成するだけの場合は、コマンドラインスイッチを使用します
Sudo checkinstall --install=no