Linux 如何在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”时,系统提示我选择一个用于配置phpMyAdmin的web服务器。在这种情况下,我们选择了Apache2。接下来,我们被要求输入MySQL应用程序密码,并选择是否使用dbconfig-common来配置数据库。提供必要的信息后,安装过程继续进行,phpMyAdmin成功安装和配置。
3.自定义包
如果您想要在dpkg-reconfigure的默认设置之外定制其行为,有一些可用的选项可以使用。以下是其中的一些选项。
使用Linux命令行软件包管理器,用户可以通过使用“-f标志”命令选择一个前端来定制他们的用户体验。根据软件包管理器的不同,有各种前端可用,如apt-get提供dialog、readline和noninteractive前端。
输入
$ 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.
如果我们想要永久更改一个包的默认前端,我们可以使用’dpkg-reconfigure’命令和’debconf’选项,然后跟上我们希望修改的包的名称。这个命令会打开一个交互式提示,我们可以从可用选项列表中选择一个新的默认前端。
输入
$ 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) ...
如果您想在重新配置过程中忽略一些问题,可以使用带有“优先级”选项的“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用户来说是一种必备工具。
极客笔记