dpkg/apt-get を自動化するにはどうすればよいですか?
質問
新しいサーバーのパッケージを自動的にダウンロードするスクリプトを作成しようとしています。ただし、「mysql-server」などの一部のものは自動的にインストールできないため、最初に ncurses インターフェースで設定する必要があります。man ページを調べましたが、適切なものが見つかりませんでした。
後で conf ファイルをアップロード/編集する必要があるかどうかは気にしません。必要なのは、適切なパッケージをインストールすることだけです。
tarball を取得して自分で構築する以外に何をすべきか知っている人はいますか?
アップデートmysql-server のようなものについては、次のようにできることがわかりました。
DEBIAN_FRONTEND='noninteractive' apt-get install -yq mysql-server
ただし、期待はsun-java6-jdkに必要なもののようです。まだ評価していない
解決
(ncursesのディスプレイを置くものです)のdebconfを通して質問をパッケージするために、あなたが質問を事前に答えることができます。日-javaに関する質問は<のhref = "https://web.archive.org/web/20120618123342/http://www.davidpashley.com/blog/debian/の手順に従って、事前に回答することができますJavaのライセンス」のrel = "nofollowをさnoreferrer"> http://www.davidpashley.com/blog/debian/java-license の
他のヒント
回答
まず、通常はあなたのパッケージをインストールします。そして、debconfのデータファイルからコンフィギュレーションの回答を抽出します:
sudo apt-get install debconf-utils
sudo debconf-get-selections | grep mypackage > something.seed
次に、他のインストールのために、あなたはパッケージをインストールする前にそれを適用することができます:
sudo debconf-set-selections ./something.seed
を使用するすべての Debian パッケージ debconf
構成値を取得するためのコマンドは、無人で実行できます。コツはそれです debconf
最初にプリインストールされているものを検索します 答え 任意の構成に 質問 特定のパッケージが持つもの。
プリインストール設定の回答
次の形式でファイルを作成するだけです。
# Use one line for each question
package-name question-name question-type answer
package-name question-name question-type really long \
answer here
package-name question-name question-type answer
...
それを次のようにシステムに入力します。
$ debconf-set-selections my-selections-file
これで、準備が整いました apt-get install
, 、 いつものように。
一回限りの
このコマンドは stdin からも読み取るため、次のことができます。
$ echo "man-db man-db/auto-update boolean true" | debconf-set-selections
デフォルトの答えを見つける
どのパッケージがこれらの構成の回答を使用しているかをどのようにして知ることができますか?問題のパッケージをすでに対話形式でインストールしている場合は、ローカル システムにクエリを実行して、現在構成されている値を確認できます。 debconf-get-selections
現在のシステムのすべての設定回答のリストを出力します。例えば
$ debconf-get-selections | grep '^man'
私のシステムでは以下を返します:
man-db man-db/install-setuid boolean false
man-db man-db/auto-update boolean true
インストールが必要になる場合があります debconf-utils
パッケージを使用して、このコマンドを使用できるようにします。
サンプル
# Preset values to questions which would otherwise be asked while
# installing packages.
# Use debconf-set-selections to install
openssh-server openssh-server/permit-root-login boolean false
man-db man-db/install-setuid boolean false
man-db man-db/auto-update boolean true
情報源
- アンソニー・タウンズの答え & ビット腐ったリンク
- 男 debconf-set-selections(1)
- 重複した回答 サーバー障害で
私は正確にどのような設定のMySQLサーバのニーズわからないんだけど、あなたはような何かを試みることができます
の期待私はのcron-aptののになります。私はそれを自分自身を試していないが、それは、パッケージの説明には有望な音です。