Назад | Перейти на главную страницу

Как отменить удаление зависимых пакетов с помощью apt-get?

Я хочу заменить postfix на exim4 на моем тестовом сервере Ubuntu, чтобы отразить настройку, которая у меня есть на моем производственном сервере, но apt-get и aptitude (что вполне понятно) настаивают на удалении нескольких пакетов, которые зависят от наличия почтового стека. Однако в этом случае я готов переопределить несомненный здравый смысл apt-get, поскольку exim должен выполнять все требования зависимых пакетов, обеспечивая функциональность почты и sendmail для моих приложений. Я не хочу удалять зависимые пакеты, поскольку для этого потребовались месяцы усилий, и, несмотря на наличие резервной копии, будет сложно восстановить должным образом.

Мне удалось установить exim4 вместо postfix. Я сделал:

    dpkg --force-all -r postfix
    apt-get purge postfix

Я проигнорировал совет apt-get -f install поскольку он пытался переустановить postfix. Затем:

    aptitude install exim4-daemon-heavy sa-exim

Теперь я могу продолжить настройку MTA моего тестового сервера, как моего производственного.

Обычно вы просто просите aptitude установить новый почтовый сервер:

   aptitude installl exim4

Вот как это выглядит для меня:

datacompboy@nuuzerpogodible:~$ LANG=C sudo aptitude install postfix
The following NEW packages will be installed:
  postfix{b} 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 1565 kB of archives. After unpacking 3479 kB will be used.
The following packages have unmet dependencies:
 postfix : Conflicts: mail-transport-agent which is a virtual package.
 exim4-daemon-light : Conflicts: mail-transport-agent which is a virtual package.
 exim4-config : Conflicts: postfix but 2.9.1-2 is to be installed.
The following actions will resolve these dependencies:

     Remove the following packages:
1)     exim4                       
2)     exim4-base                  
3)     exim4-config                
4)     exim4-daemon-light          



Accept this solution? [Y/n/q/?] y
The following NEW packages will be installed:
  postfix 
The following packages will be REMOVED:
  exim4{a} exim4-base{a} exim4-config{a} exim4-daemon-light{a} 
0 packages upgraded, 1 newly installed, 4 to remove and 0 not upgraded.
Need to get 1565 kB of archives. After unpacking 417 kB will be freed.

Это правильное поведение: только один MTA может жить в системе без PITA.

Если он пытается удалить больше пакетов, чем вы хотите, вы должны проверить с помощью

Способность, почему какой-то пакет

чтобы получить информацию о том, почему пакет был установлен. Теперь вам следует решить. Если политика удаления - {a} - это означает, что пакет установлен из-за автоматических зависимостей, вы можете удалить факт, что он установлен автоматически, и установить его вручную с помощью

aptitude unmarkauto somepackage

После этого некоторый пакет будет помечен как установленный вручную и будет удален только в случае конфликта, а не потому, что он больше не используется.