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

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

[ Hits: 9.681 ]

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

Como alterar o título da janela de terminal via comando

Minecraft no Debian 10

Agendando tarefas no cron com horário aleatório

Verificando IPs ativos em determinada rede com fping

Verificar se determinada porta está aberta com o comando echo (funciona remoto)

Leitura recomendada

Man Pages via Web no Fedora 19

Instalando Cloudstack no CentOS

Logando make, compilações e atividades em geral

O sistema operacional Tropix

OpenVZ Web Panel

  

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