Linux:如何使用 apt-get/aptitude 恢复配置文件?

Linux:如何使用 apt-get/aptitude 恢复配置文件?

我偶尔会丢失配置文件“/etc/mysql/my.cnf”,并想恢复它。该文件属于mysql-common一些重要功能所需的包,所以我不能只使用purge && install它:依赖项也会被卸载(或者如果我可以暂时忽略它们,它们将无法工作)。

有没有办法从包中恢复配置文件,而无需取消ar包文件?

dpkg-reconfigure mysql-common没有恢复它。

答案1

dpkg -i --force-confmiss mysql-common.deb将重新创建任何丢失的配置文件,即/etc/mysql/my.cnf在您的情况下。

答案2

以上方法都不适用于我 - 也许已经过时了 - 无论如何,我找到了这个解决方案:

apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall mysql-common

答案3

在 Debian Squeeze 中 — 至少 — 我们也可以这样做,在之后su— 或者sudo对于 Ubuntu —

aptitude install -o Dpkg::Options::=--force-confmiss mysql-server

这将处理依赖关系mysql-server并重置所有缺失的 conf 文件,包括mysql-common。冲突(剩余)文件将被提示保留或重置。

不幸的是,aptitude 中的一个错误, 和

aptitude purge -o Dpkg::Options::=--force-all mysql-server

不管用。所以我们必须一个接一个地做

dpkg --force-all --purge  mysql-common  mysql-server  mysql-client …

这会删除所有配置文件,原始或修改版,但自定义文件将被保存,并显示一条屏幕消息。顺便说一句,请注意,它dpkg还会识别--force-confnew--force-confold选项。

mysql-server在屏幕上打印依赖项列表:

aptitude --simulate remove mysql-server

答案4

在我的/etc/mysql/目录中,我有一个my.cnf.orig包含原始内容的文件my.cnf

我不知道从哪里来/etc/mysql/my.cnf.orig的——也就是说,是 mysql 的安装导致的。我记得有一次检查过曾是完全一样my.cnf

如果你有这样的东西, my.cnf您可以将一个复制到另一个。

sudo cp /etc/mysql/my.cnf.orig /etc/mysql/my.cnf

无论如何,它是一个 3897 字节的简单文本文件,您可以从通用 Mysql 配置文件中复制和粘贴。

这将是一个好主意一旦你恢复/etc/mysql/my.cnf制作一份副本,以便将来可以轻松恢复。

相关内容