Configuration

將預設答案傳遞給 apt-get 軟體包安裝問題?

  • November 27, 2018

我正在嘗試為新伺服器編寫配置腳本,第一步是安裝一系列必需的軟體包,例如 MySQL、phpMyAdmin 等。apt-get install但是,當 dpkg 嘗試配置它們時,它會要求您提供幾個選項,例如 MySQL root 密碼、phpMyAdmin 密碼、使用什麼伺服器等。

由於我可能會將這個腳本傳遞給不太可能閱讀提示的同事,並且我希望簡單地啟動它並離開,**我想知道如何傳遞一系列“預設”答案/它使用的值。**這可能包括在命令行上傳遞的使用者名/密碼/其他動態值。

我意識到在腳本中包含密碼是一個安全問題,但我願意忽略它,特別是在安裝包的更一般意義上,這意味著答案。

使用 debconf 的配置預置。

進行測試安裝以獲取所需的值:

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

在安裝過程中根本沒有提示。

引用自:https://serverfault.com/questions/407317