web-dev-qa-db-ja.com

インストールせずにソースから.debパッケージをビルドする

インストールしたいプログラムのインストーラープログラムまたはソースtarballがあるとします。 (利用可能なDebianパッケージはありません。)最初に、.debパッケージを作成し、将来インストールされたプログラムをきれいに削除できるようにします( ソースからビルドされたアプリケーションのアンインストールを参照)ソースからパッケージをビルドする場合、どうすれば完全にアンインストールまたは削除できますか? )。また、パッケージを使用してインストールすると、他のパッケージのファイルを上書きできなくなります。インストーラーまたはSudo make installを実行した場合、これは保証できません。

チェックインストール

そこや他の場所で答えを読むことから、私は通常の解決策を集めます checkinstall を使用してパッケージをビルドすることです。残念ながら、checkinstallは、notmake 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の使用は除外されます。

パッケージをビルドするには、withoutパッケージをインストールするか、システムファイルにタッチさせますか?

これを達成するために fakechroot ed debootstrap 環境でCheckinstallを実行することは可能ですか?ビルドは、ルートではなく通常のユーザーとして実行することをお勧めします。これにより、プロセスが失敗した場合にシステムファイルが上書きされるのを防ぐことができます。

4

debuildを試して、ソースからバイナリ(deb)ファイルを作成できます。パッケージ化するように、debianフォルダーを準備する必要があります。正しく設定できたら、ソースディレクトリ内からdebuild -bコマンドを実行すると、debファイルが作成されます。

Debianパッケージング入門 もご覧ください。


それがすべておかしなものである場合は、システムファイルをいじるcheckinstallで間に合わせる必要があります。

3
jokerdino

Linuxジャーナルの記事回答 が見つかりました。Checkinstallを使用してソースからパッケージをビルドする

インストールを実行せずに.debを作成するだけの場合は、コマンドラインスイッチを使用します

Sudo checkinstall --install=no

0
DMfll