dpkg / apt-get 想要安装并覆盖不同的包

dpkg / apt-get 想要安装并覆盖不同的包

我想安装磅。这样做:

apt-get install pound

产生这个:

root@myhost:~# apt-get install pound
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-3.2.0-23-generic linux-headers-3.2.0-23
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
  pound
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
Need to get 98.3 kB of archives.
After this operation, 226 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/universe pound amd64 2.5-1.1 [98.3 kB]
Fetched 98.3 kB in 0s (418 kB/s)
Selecting previously unselected package pound.
(Reading database ... 102644 files and directories currently installed.)
Unpacking pound (from .../pound_2.5-1.1_amd64.deb) ...
Processing triggers for ureadahead ...
ureadahead will be reprofiled on next reboot
Processing triggers for man-db ...
Setting up mysql-server-5.5 (5.5.32-0ubuntu0.12.04.1) ...

Configuration file `/etc/apparmor.d/usr.sbin.mysqld'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.

mysql-server 已安装并正在运行。我不想尝试重新安装这个。

Pound 包不需要 mysql-server 作为任何依赖项。

我该如何解决?

我不想升级它,因为这会导致生产系统崩溃。似乎有什么东西卡住了dpkg,强制安装任何软件包来强制 mysql 服务器重新安装或升级。

答案1

听起来您会升级 mysql-server-5.5 软件包。该版本与中给出的版本匹配USN-1909-1,看来您还没有安装安全更新。

您应该查看配置文件的各个版本中的不同之处(D例如,通过按提示)。然后,正如提示所示,您可以使用 保留(该文件的)当前版本N,使用 接受 Ubuntu 的版本Y,或者使用 启动 shell 自己处理它(例如,合并更改)Z

响应您的更新:

在过去的某个时刻,某人(您或此机器上的其他管理员)可能没有注意到就开始了 MySQL 升级。或者系统可能配置为自动应用安全更新,但 MySQL 由于某种原因出现故障。您可以在apt-get输出中看到这一点:

0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.

毫无疑问,如果您检查过dpkg -s mysql-server-5.5,状态行不会是install ok installed

不管怎样,第一次发生的事情是 dpkg 实际上从新包中解压了文件(可能也停止了 MySQL,也许这就是它被中止的原因)。它尝试“配置”MySQL,但要么在此期间出错,要么被中止。

apt正在尝试通过配置包来解决这个问题。您也许可以dpkg -i直接使用来绕过它(尽管dpkg也可以尝试配置它,我不确定)

真正的解决方法是您需要安排一些停机时间并完成 MySQL 升级(并注意可能存在配置错误)。特别是因为您正在运行的版本有(根据甲骨文)可能损害机密性和完整性的远程漏洞。

答案2

2 not fully installed or removed在你开始 apt 运行之前你就已经收到了这条消息。这是不是普通的。这通常意味着您的包数据库处于损坏或不一致的状态。如果你曾经看到过这个,立即中止。你应该先尝试跑步apt-get -f install来解决这个问题。如果这不起作用,您可以执行其他操作,但如果您看到消息包含诸如 之类的单词,则切勿继续执行涉及包数据库的其他操作not fully installed or removed。先解决问题。

实际上,我对 apt 让您在这种情况下继续进行感到有点惊讶。我不经常遇到这种情况,但我记得 apt 不会让你继续,直到你解决了问题。

无论如何,正如您所看到的,当您安装时pound,apt 尝试完成 mysql 软件包的安装,这些软件包是 apt 首先警告您的软件包,并带有上述2 not fully installed or removed消息。

注意:@derobert 在他的回答中从稍微不同的角度涵盖了相同的基础。既然你显然不理解他,我想我应该补充两分钱。

相关内容