Как переопределить apt-get для удаления зависимых пакетов?
Я хочу заменить postfix exim4 на моем тестовом сервере Ubuntu, чтобы отразить настройку, установленную на моем рабочем сервере, но apt-get и aptitude (вполне понятно) настаивают на удалении нескольких пакетов, которые зависят от наличия почтового стека. Однако в этом случае я готов переопределить несомненный здравый смысл apt-get, так как exim должен выполнять все требования зависимых пакетов, обеспечивая функциональность mail и sendmail для моих приложений. Я не хочу удалять зависимые пакеты, так как вложены месяцы усилий, и хотя их резервное копирование будет затруднительно для правильной реконструкции.
2 ответа
Мне удалось установить exim4 вместо постфикса. Я сделал:
dpkg --force-all -r postfix
apt-get purge postfix
Я проигнорировал совет apt-get -f install
как он пытался переустановить постфикс. Затем:
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} - это означает, что пакет установлен из-за автоматических зависимостей, вы можете удалить тот факт, что он установлен автоматически, и установить его вручную с
Способность Unmarkauto Somepackage
После этого некоторый пакет будет подвергнут угрозе как установленный вручную, и он будет удален только в случае конфликтов, а не потому, что он больше не используется.