apt-getパッケージのインストールに関する質問にデフォルトの回答を渡しますか?


27

新しいサーバーの構成スクリプトを作成しようとしていますが、最初のステップの1つは、MySQL、phpMyAdminなどの一連の必要なパッケージをインストールすることです。apt-get installただし、dpkgがそれらを構成しようとすると、 MySQLルートパスワード、phpMyAdminパスワード、使用するサーバーなど、いくつかのオプション

プロンプトを読む可能性が低い同僚にこのスクリプトを渡す可能性が高いため、単に開始してすぐに立ち去りたいという私の希望は、一連の「デフォルト」の回答を渡す方法を知りたいです。使用する値。これには、コマンドラインで渡されるユーザー名/パスワード/その他の動的な値が含まれる場合があります。

-

スクリプトにパスワードを含めることはセキュリティ上の問題であることを認識していますが、特にこれに対する答えが示唆するパッケージをインストールするというより一般的な意味で、私はそれを無視したいと思っています。

回答:


44

debconfの設定preseedを使用します。

テストインストールを実行して、必要な値を取得します。

root@test1:~# apt-get install mysql-server

..インストール中にプロンプ​​トが表示されたら、rootパスワードを設定します。

次に、インストールしたばかりのdebconf設定がどのように見えるかを確認できます(インストールが必要な場合がありますdebconf-utils)。

root@test1:~# debconf-get-selections | grep mysql-server
mysql-server-5.5        mysql-server/root_password_again        password
mysql-server-5.5        mysql-server/root_password      password
mysql-server-5.5        mysql-server/error_setting_password     error
mysql-server-5.5        mysql-server-5.5/postrm_remove_databases        boolean false
mysql-server-5.5        mysql-server-5.5/start_on_boot  boolean true
mysql-server-5.5        mysql-server-5.5/nis_warning    note
mysql-server-5.5        mysql-server-5.5/really_downgrade       boolean false
mysql-server-5.5        mysql-server/password_mismatch  error
mysql-server-5.5        mysql-server/no_upgrade_when_using_ndb  error

そこにはノイズがありますが、重要な部分はパスワードの設定です。

次に、新規インストールの場合、事前にパスワードを設定することにより、プロンプトを完全に回避できます。

root@test2:~# echo "mysql-server-5.5 mysql-server/root_password_again password Som3Passw0rd" | debconf-set-selections
root@test2:~# echo "mysql-server-5.5 mysql-server/root_password password Som3Passw0rd" | debconf-set-selections
root@test2:~# apt-get install mysql-server

そのインストール中にプロンプ​​トはまったくありません。


10
sudo apt-get install debconf-utils必要に応じて。
アンドリュー

これはまさに私が探していたもののように見えます、ありがとう!すぐに試してみます。
タルカ

事前にシードされたMySQLルートパスワードを受け入れないphpMyAdminの既知のエラーは別として、これは完全に機能します!
タルカ

1
パッケージをインストールせずにパッケージシステムから可能なdebconf設定を取得する方法はありますか?
-stefan.at.wpf

17
export DEBIAN_FRONTEND=noninteractive
apt-get -q -y install _packages_

何が$ DEBIAN_FRONTENDを読んでいるかについてのリファレンスがありますか?
アンドリュー

これは長い間Debianの一部であったため、追加されたときは本当にIanだけがあなたに伝えることができたと思います。
マイケルハンプトン

1
@Andrew debconfによって読み取られます。これは実際に質問を処理するものです。
mgorven

@mgorvenああ、私は以前にdpkgよりも深く行ったことはありません。
アンドリュー

知る限り、このソリューションでは、プロンプトをスキップして、すべての回答のデフォルトを受け入れることができます。デフォルト以外の回答を設定する場合は、debconf-set-selectionsメソッドなどの別のソリューションを使用する必要があります。
メストレリオン

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