Como eu sobrescrevo o apt-get removendo pacotes dependentes?

3

Eu quero substituir o postfix com exim4 no meu servidor de teste do Ubuntu para refletir a configuração que tenho no meu servidor de produção, mas o apt-get e o aptitude insistem em remover vários pacotes que dependem de ter uma pilha de email. No entanto, neste caso, estou preparado para substituir o bom senso indiscutível do apt-get, pois o exim deve atender a todos os requisitos dos pacotes dependentes, fornecendo funcionalidade de correio e sendmail para meus aplicativos. Eu não quero remover os pacotes dependentes, pois há meses de esforço investido e, apesar de salvaguardados, será difícil reconstruí-los adequadamente.

    
por iainH 14.04.2012 / 02:08

2 respostas

3

Eu consegui instalar o exim4 no lugar do postfix. Eu fiz:

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

Eu ignorei o aviso para apt-get -f install quando ele tentou reinstalar o postfix. Então:

    aptitude install exim4-daemon-heavy sa-exim

Agora posso configurar o MTA do meu servidor de teste como o da minha produção.

    
por 14.04.2012 / 13:43
0

Normalmente, é só pedir ao aptitude para instalar um novo servidor de correio:

   aptitude installl exim4

Veja como isso me parece:

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.

Este é o comportamento correto: apenas um MTA pode viver no sistema sem PITA

Se tentar remover mais pacotes do que você deseja, você deve verificar com

aptitude porque somepackage

para obter informações sobre por que o pacote é instalado. Agora você deveria decidir. Se remover a política é {a} - isso significa que o pacote instalado devido a dependências automáticas, você pode remover o fato de que ele instalado automaticamente e configurá-lo para manual com

aptitude unmarkauto somepackage

Depois disso, o pacote será processado manualmente, e será removido somente em caso de conflitos, não porque não seja mais usado.

    
por 14.04.2012 / 09:35