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

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

[ Hits: 11.023 ]

Blog: https://fabio.automatizando.dev

 


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 capturar prints de vídeos usando mplayer

Meu servidor Conectiva Linux se conecta, mas não encontra sites na Internet

InstaPy: Error, unable to determine correct filename for 64bit linux [Resolvido]

Como mudar o nome de dispositivos Bluetooth via linha de comando

Como checar se sua placa possui sinal físico de rede

Leitura recomendada

Backup e restore das regras de ACLs

Como bloquear o Ultrasurf

Sobrevivendo ao Terminal do Xenserver 7

Atualizando a BIOS de máquinas virtuais baseadas em KVM/QEMU

No process in pidfile '/var/run/zabbix/zabbix_server.pid' found running; none killed

  

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