如何在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+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始
广告