preinstスクリプト内で他のdpkgまたはapt- *コマンドを呼び出すことはできますか?


9

Ubuntu 12.04デバイスに展開するカスタム(社内).debファイルの一部として、いくつかのPPAリポジトリを追加し、apt-get updateを実行して、それらのPPAからパッケージをインストールする必要があります。

これは、.debファイルの.preinstまたは.postinstスクリプト内で実行できますか?

私は(私の.debファイルがインストールされている場合と仮定sudo dpkg -i testing.debのような特定のコマンドを呼び出すことから私を妨げるようないくつかのロックまたは機構おそらく存在していること)add-apt-repositoryapt-get updateapt-get install

これは正しい仮定ですか?


回答:


7

あなたは正しいです。メンテナスクリプトは、パッケージのインストール時に行われる変更以外に、aptまたはdpkgの状態を変更することは想定されていません。

/etc/apt/sources.list.dただし、ファイルをにインストールしても問題ありません。「このパッケージをインストールしてAPTリポジトリXをシステムに追加する」のような役割を担うほとんどのパッケージは、(を呼び出すのではなくadd-apt-repository)単純にそれを行います。リポジトリへの署名に使用するGPG公開鍵をにドロップすることも一般的/etc/apt/trusted.gpg.dです。

ユーザーがソフトウェアの追加のインストール手順を簡単に実行できるようにする場合は、ジョブを実行するスクリプトを配布し、そのスクリプトを手動で実行するようにユーザーに指示することもできます。

しかし、本当に、本当に、apt-get updateまたはapt-get installなどを自動的に呼び出したい場合、パッケージがDebianまたはUbuntuで完全に受け入れられないことを気にせず、ユーザーがパッケージがそのように機能することに問題がない場合は、中に何か/etc/cron.d既存のaptやdpkgのロックするかどうかを確認し、どれが開催されていない場合は、再び実行されないそれらのステップのためのあなたの追加のインストール手順と並べを行います。そのアプローチはお勧めしません。

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