如何在Ubuntu和Debian中重新配置已安裝的軟體包?


Ubuntu和Debian使用者可以使用`dpkg-reconfigure`命令輕鬆修改或恢復已安裝軟體包的配置設定。此命令與Debian軟體包的配置系統debconf協同工作,允許使用者檢索設定、修改配置和解決問題。透過回答一系列類似於安裝過程中提出的配置問題,使用者可以更改軟體包的設定。一個例子是phpmyadmin,這是一個流行的MySQL資料庫管理工具。總的來說,`dpkg-reconfigure`是管理Ubuntu和Debian系統中軟體包的一個強大而必要的工具。

1. 檢視已安裝軟體包的配置

作為使用Debian或Ubuntu的使用者,我們發現“`dpkg-reconfigure`”命令非常有用,它不僅允許我們重新配置已安裝的軟體包,還可以檢視其當前的配置設定。此獨特功能有助於解決問題或自定義軟體包的行為,而無需解除安裝並重新安裝它。

輸入

$ sudo debconf-show phpmyadmin

輸出

* phpmyadmin/dbconfig-install: boolean true
* phpmyadmin/reconfigure-webserver: boolean true
* phpmyadmin/dbconfig-upgrade: boolean true
* phpmyadmin/mysql/admin-pass: password [hidden]
* phpmyadmin/mysql/app-pass: password [hidden]
* phpmyadmin/app-password-confirm: password [hidden]
* phpmyadmin/password-confirm: password [hidden]
* phpmyadmin/db/app-user: string phpmyadmin
* phpmyadmin/db/dbname: string phpmyadmin
* phpmyadmin/dbconfig-remove: boolean false
* phpmyadmin/remote/host: string
* phpmyadmin/upgrade-backup: boolean true
* phpmyadmin/db/basepath: string
* phpmyadmin/internal/skip-preseed: boolean false
* phpmyadmin/install-error: select
* phpmyadmin/dbconfig-common: boolean true
* phpmyadmin/missing-db-package-error: select

2. 在Debian和Ubuntu中重新配置已安裝的軟體包

“`dpkg-reconfigure`”命令對於在Debian或Ubuntu系統上工作的系統管理員和高階使用者來說是一個寶貴的工具。使用此命令,我們可以輕鬆地重新配置已安裝的軟體包,而無需解除安裝和重新安裝它們,這節省了時間和精力,同時最大限度地降低了資料丟失的風險。此外,該命令允許我更改安裝期間設定的軟體包的預設配置選項,從而更好地控制軟體安裝過程。

輸入

$ sudo dpkg-reconfigure phpmyadmin

命令的輸出如下所示

user@ubuntu:~$ sudo dpkg-reconfigure phpmyadmin
Please select the web server that should be automatically configured to run phpMyAdmin:

    1. Apache2
    2. Nginx
    3. Lighttpd
    4. None

Select the web server to reconfigure: 1

Configuring phpMyAdmin for Apache2...

Please enter the MySQL application password for phpmyadmin:

Choose whether to use dbconfig-common to configure the database or to use the existing database.

Configure database for phpmyadmin with dbconfig-common? Yes / No: Yes

Please enter the password that will be used for the phpmyadmin database:

Creating a phpmyadmin database...

Configuring database...

Setting up phpmyadmin...

phpMyAdmin has been installed and configured successfully.

當我們執行“`sudo dpkg-reconfigure phpmyadmin`”時,系統提示我選擇一個Web伺服器來配置phpMyAdmin。在這種情況下,我們選擇了Apache2。接下來,系統要求我們輸入MySQL應用程式密碼,並選擇是否使用dbconfig-common來配置資料庫。提供必要的資訊後,安裝過程繼續,phpMyAdmin成功安裝和配置。

3. 自定義軟體包

如果要自定義`dpkg-reconfigure`超出其預設設定的行為,可以使用一些可用的選項。以下是一些選項。

使用Linux命令列軟體包管理器,使用者可以透過使用“`-f`標誌”命令選擇前端來自定義其使用者體驗。根據軟體包管理器,可以使用各種前端——`apt-get`提供dialog、readline和非互動式前端。

輸入

$ sudo dpkg-reconfigure -f readline phpmyadmin

終端輸出可能如下所示

sudo dpkg-reconfigure -f readline phpmyadmin
[sudo] password for username: 

Creating config file /etc/phpmyadmin/config-db.php with new version
chown: changing ownership of '/var/lib/phpmyadmin/tmp': Operation not permitted
chown: changing ownership of '/var/lib/phpmyadmin/session': Operation not permitted
Reloading web server config: apache2.

如果要永久更改軟體包的預設前端,可以使用帶有“`debconf`”選項的“`dpkg-reconfigure`”命令,後跟要修改的軟體包的名稱。此命令將開啟一個互動式提示符,我們可以在其中從可用選項列表中選擇軟體包的新預設前端。

輸入

$ sudo dpkg-reconfigure debconf

終端輸出可能如下所示

sudo dpkg-reconfigure debconf
[sudo] password for username: 

Configuring debconf package...
Selecting previously unselected package debconf.
(Reading database ... 32073 files and directories currently installed.)
Preparing to unpack .../debconf_1.5.71_all.deb ...
Unpacking debconf (1.5.71) ...
Setting up debconf (1.5.71) ...
Installing new version of config file /etc/init.d/debconf ...
Processing triggers for man-db (2.9.4-2) ...

如果要在重新配置過程中忽略某些問題,可以使用帶有“`priority`”選項的“`sudo dpkg-reconfigure debconf`”命令。這將顯示一個螢幕,其中顯示配置過程中每個問題的優先順序級別列表。您可以選擇要忽略的問題的優先順序級別,它們將在重新配置過程中被跳過。如果您希望在軟體包配置期間為問題設定最低優先順序級別,請使用“`-p`”命令,後跟優先順序級別和軟體包名稱。這將允許您控制重新配置期間提出的問題。

輸入

$ sudo dpkg-reconfigure -p critical phpmyadmin

終端輸出可能如下所示

sudo dpkg-reconfigure -p critical phpmyadmin
[sudo] password for username: 

Configuring phpmyadmin package with critical priority...
Selecting previously unselected package phpmyadmin.
(Reading database ... 32073 files and directories currently installed.)
Preparing to unpack .../phpmyadmin_4.6.6-5+deb9u2_all.deb ...
Unpacking phpmyadmin (4.6.6-5+deb9u2) ...
Setting up phpmyadmin (4.6.6-5+deb9u2) ...
debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend requires a screen at least 13 lines tall and 31 columns wide.)
debconf: falling back to frontend: Readline

如果某些軟體包已損壞或損壞,我們可以使用“`sudo dpkg-reconfigure -f package_name`”命令強制重新配置。要使用此命令,我們將用要重新配置的軟體包的實際名稱替換“`package_name`”。

輸入

$ sudo dpkg-reconfigure -f package_name

終端輸出可能如下所示

sudo dpkg-reconfigure -f package_name
[sudo] password for username: 
Reconfiguring package_name with default frontend...
Selecting previously unselected package package_name.
(Reading database ... 32073 files and directories currently installed.)
Preparing to unpack .../package_name_1.0-1_amd64.deb ...
Unpacking package_name (1.0-1) ...
Setting up package_name (1.0-1) ...
Processing triggers for man-db (2.9.4-2) ...

如果您樂於探索所有型別的“`dpkg-reconfigure`”,只需在終端中鍵入“`man`”命令即可。這樣做,手冊頁將顯示所有關於`dpkg-reconfigure`的資訊和型別以及示例。因此,您可以瞭解所有`dpkg-reconfigure`及其命令的用途。

$ man dpkg-reconfigure

當我們在終端中執行命令“`man dpkg-reconfigure`”時,它會顯示一個格式化的文字顯示,其中包含“`dpkg-reconfigure`”命令的手冊頁。“手冊頁”提供了有關命令的用法、選項和示例的詳細資訊。我們瞭解到“`dpkg-reconfigure`”用於重新配置已安裝的軟體包,並且可以提出與首次安裝軟體包時類似的配置問題。手冊頁還列出了各種選項,包括為debconf對話方塊指定前端的功能。總的來說,“`dpkg-reconfigure`”的手冊頁作為系統管理員和在Linux系統上管理軟體包的高階使用者的有用參考。

結論

總而言之,在Ubuntu和Debian中重新配置已安裝的軟體包可能是一種有用的技術,可以調整軟體的行為、診斷和修復問題或更新配置檔案。雖然`dpkg-reconfigure`命令是一種方便的方法來實現這一點,但值得注意的是,並非所有軟體包都支援它,可能需要手動編輯配置檔案。修改系統檔案時應謹慎操作,強烈建議備份重要資料。總之,掌握重新配置軟體包的技能對於想要個性化系統或解決軟體問題的Ubuntu或Debian使用者來說可能是一個重要的工具。

更新於:2023年7月27日

2K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.