web-dev-qa-db-ja.com

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

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

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

-

スクリプトにパスワードを設定することはセキュリティ上の問題であることは承知していますが、特にこれに対する回答が意味するパッケージのインストールというより一般的な意味では、無視してもかまいません。

28
Tarka

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

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

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

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

次に、インストールしたばかりの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

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

44
Shane Madden
export DEBIAN_FRONTEND=noninteractive
apt-get -q -y install _packages_
18
Michael Hampton

Debconfパッケージには debconf-show

debconf-show package
2
user1338062