dpkg / apt-get хочет установить и перезаписать другой пакет

dpkg / apt-get хочет установить и перезаписать другой пакет

Я хочу установить Pound. Делаю это:

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-server.

решение1

Похоже, вы бы обновили свой пакет mysql-server-5.5. Эта версия совпадает с указанной вUSN-1909-1, похоже, вы не установили обновление безопасности.

Вам следует просмотреть, что отличается в разных версиях файла конфигурации ( Dнапример, нажав в приглашении). Затем, как указано в приглашении, вы можете сохранить свою текущую версию (этого файла) с помощью N, принять версию Ubuntu с помощью Y, или запустить оболочку, чтобы разобраться с этим самостоятельно (например, объединить изменения) с помощью 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 (и будьте осторожны, может быть, произошла ошибка конфигурации). Тем более, что версия, которую вы используете, имеет (по данным Oracle) удаленные уязвимости, которые могут нарушить как конфиденциальность, так и целостность.

решение2

У вас было сообщение 2 not fully installed or removedеще до того, как вы начали свой apt run. Этонетнормально. Обычно это означает, что ваша база данных пакетов находится в сломанном или несогласованном состоянии. Если вы когда-нибудь увидите это,ПРЕКРАТИТЬ НЕМЕДЛЕННО. Вам следует попробовать запустить apt-get -f installдля начала, чтобы исправить это. Если это не сработает, вы можете сделать что-то другое, но никогда не продолжайте другие действия с базой данных пакетов, если вы видите сообщения, содержащие слова типа not fully installed or removed. Сначала исправьте проблему.

Я на самом деле немного удивлен, что apt позволяет вам продолжить в этом случае. Я не часто сталкиваюсь с такими ситуациями, но я помню, что apt не позволяет вам продолжить, пока вы не исправите вещи.

В любом случае, как вы видите, при установке poundapt попытался завершить установку пакетов mysql, о которых apt предупреждал вас в первую очередь, с помощью вышеупомянутого 2 not fully installed or removedсообщения.

ПРИМЕЧАНИЕ: @derobert осветил ту же тему в своем ответе с немного другой точки зрения. Поскольку вы, по-видимому, его не поняли, я подумал, что добавлю свои два цента.

Связанный контент