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

kol*_*pto 38 linux configuration restore dependencies apt

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

有没有办法在不ar取消包文件的情况下从包中恢复配置文件?

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

TRS*_*-80 38

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

  • 谢谢!在 Ubuntu 上,它是 `sudo dpkg --force-confmiss -i /var/cache/apt/archives/mysql-common*.deb` (8认同)

小智 14

以上都不适合我 - 可能已经过时 - 无论如何,我找到了这个解决方案:

apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall mysql-common
Run Code Online (Sandbox Code Playgroud)


小智 10

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

aptitude install -o Dpkg::Options::=--force-confmiss mysql-server
Run Code Online (Sandbox Code Playgroud)

这将关心mysql-server和重置该批次的所有丢失的 conf 文件的依赖关系,包括mysql-common. 冲突(剩余)文件将被提示保留或重置。

不幸的是,aptitude一个错误,并且

aptitude purge -o Dpkg::Options::=--force-all mysql-server
Run Code Online (Sandbox Code Playgroud)

不会工作。所以我们必须一一做

dpkg --force-all --purge  mysql-common  mysql-server  mysql-client …
Run Code Online (Sandbox Code Playgroud)

这将删除任何原始或修改的配置文件但自定义文件将被保留,并带有屏幕消息。请注意,顺便说一下,这dpkg也承认--force-confnew--force-confold选择。

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

aptitude --simulate remove mysql-server
Run Code Online (Sandbox Code Playgroud)