Como forçar o APT a ignorar determinada dependência

Publicado por Fábio Berbert de Paula em 28/01/2016

[ Hits: 9.694 ]

Blog: https://www.instagram.com/alexabolada/

 


Como forçar o APT a ignorar determinada dependência



Tive um problema com o APT ao tentar instalar o Skype no meu Debian 64 bits seguindo a seguinte dica:
Mesmo após adicionar a arquitetura, instalar as dependências, ainda encontrava um erro com relação ao pacote libssl11.0.0.

# dpkg -i skype-install.deb
(Reading database ... 172609 files and directories currently installed.)
Preparing to unpack skype-install.deb ...
Unpacking skype:i386 (4.3.0.37-1) over (4.3.0.37-1) ...
dpkg: dependency problems prevent configuration of skype:i386:
skype:i386 depends on libssl1.0.0.

dpkg: error processing package skype:i386 (--install):
dependency problems - leaving unconfigured


O skype na verdade havia sido instalado, mas toda vez que eu tentava executar alguma operação com o APT ele me retornava a mensagem abaixo:

You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
skype:i386 : Depends: libssl1.0.0:i386 but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).


Para fazer com que o APT passe a ignorar determinada dependência na "unha", edite o arquivo:

# vim /var/lib/dpkg/status

E procure pelo trecho referente ao pacote desejado.

No meu caso fiz a seguinte busca (sintaxe do vim):

/^Package: skype

Pule para a linha que começa com "Depends:", identifique e apague a dependência:

Depends: libc6 (>= 2.3.6-6~), libc6 (>= 2.7), libgcc1 (>= 1:4.1.1), libqt4-dbus (>= 4:4.5.3), libqt4-network (>= 4:4.8.0), libqt4-xml (>= 4:4.5.3), libqtcore4 (>= 4:4.7.0~beta1), libqtgui4 (>= 4:4.8.0), libssl1.0.0, libqtwebkit4 (>= 2.1.0~2011week13), libstdc++6 (>= 4.2.1), libx11-6, libxext6, libxss1, libxv1, libpulse0, libasound2-plugins

E pronto! Vamos verificar?

# apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.


Resumo: editar o arquivo /var/lib/dpkg/status, identificar a linha "Depends" do pacote desejado e remover a dependência manualmente.

O exemplo da dica pode ser seguido para qualquer pacote com dependência quebrada. Obviamente só vai servir para dependências que estão satisfeitas. Se você remover dependências necessárias, o pacote vai instalar mas não vai funcionar.

Outras dicas deste autor

MongoDB - adicionar um campo a todos os documentos de uma coleção

Novo portal Linux: Open SCRIPT

Copiando texto para área de transferência em JavaScript

CSS3 - Forçando quebra de linha em URL longa

ERROR 144 - Table XXX is marked as crashed and last (automatic?) repair failed [Resolvido]

Leitura recomendada

Como obter o MAIN PID de um processo com SystemD (e manipulá-lo a seu gosto)

Recuperando a senha de root no Debian

Limpando pacotes órfãos e desnecessários com o deborphan

Ubuntu 14.04 em notebook com placa de vídeo Intel - Ajuste de brilho de tela

Novo dashboard para o Apache CloudStack

  

Comentários
[1] Comentário enviado por Patterson em 02/02/2017 - 13:20h

Cara... salvou minha vida, eu nunca conseguiria instalar o skype sem essa dica!

Vou até adicionar aos favoritos para não esquecer.

Ahh... funcionou no Parrot Security OS que é baseado em Debian!

[2] Comentário enviado por nriq4rd em 29/02/2020 - 18:28h

Loguei só para agradecer,
Eu estava tentando instalar o JBackPack que é uma excelente ferramenta que utiliza o rdiff-backup,
está descontinuado e nas dependências pede o JRE6, mas que roda tranquilamente nas novas versões do Java,
instalei com o comando:
dpkg -i --force-depends
depois editei o arquivo e reiniciei. Voilà, tudo funcionando.
Valeu Fábio.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts