É possível impedir a instalação de um pacote requerido?

3

Se você instalar um programa que depende de vários outros pacotes que são não instalado, o apt-get instala automaticamente essas dependências. Dentro quase todos os casos, este é o comportamento desejado.

Mas agora eu tenho um caso em que não quero instalar um pacote que é marcado como necessário, mas que não é realmente necessário para usar o programa que eu realmente quer instalar.

Exemplo:

  • Desejo instalar o programa logwatch
  • o pacote logwatch depende da instalação de um agente de transferência de e-mail (MTA)
  • logwatch pode ser usado sem um MTA
  • Eu não quero instalar um MTA

Eu sei que posso instalar o programa a partir do código-fonte. Mas eu quero saber se apt-get fornece um método para impedir a instalação de uma dependência (sem quebrar todo o sistema de gerenciamento de pacotes).

    
por user101010 29.08.2011 / 09:42

2 respostas

3

Não é possível sem invadir de alguma forma o sistema de gerenciamento de pacotes, eu acho.

O motivo é que logwatch declare postfix ou alternativamente mail-transport-agent como dependência e não como recomendar . Se o pacote puder funcionar também sem um MTA, essa strong dependência pode ser um bug.

A instalação também por dpkg não resolve, porque as dependências ignoradas continuarão a aparecer na próxima operação apt-get .

Uma maneira possível de seguir seria baixar e modificar o pacote para remover a dependência ofensiva . Não é tão difícil de perceber, mas vou dar detalhes se você for iterested.

    
por enzotib 29.08.2011 / 13:21
3

Eu não tentei isso em logwatch , mas geralmente ignorar as dependências é feito assim:

sudo dpkg -i --ignore-depends=postfix the_package.deb

Não há como fazer isso via apt que eu conheço.

EDIT: enzotib está certo, apt vai reclamar em um estágio posterior de uma dependência ausente. Apt-fixando ou alterando as dependências no pacote deb pode ser uma maneira melhor.

    
por arrange 29.08.2011 / 09:57

Tags