Gostaria de instalar a versão mais recente do boto , que eu faço viapython setup.py install
No entanto, quando tento remover a versão antiga, os seguintes pacotes também são removidos:
apt-get remove python-boto
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
cloud-init cloud-utils euca2ools python-boto
Como posso dizer ao gerenciador de pacotes para remover o boto e marcá-lo como instalado externamente (ou algo assim) para que o apt não tente consertar a dependência que está faltando?
Obrigado,
Maxim.
Respostas:
Você pode criar um pacote .deb fictício usando o
equivs
utilitário, ele fornecerá a dependência sem instalar nenhum arquivo. Em seguida, substitua o pacote atualmente instalado pela versão fictícia usandodpkg -i fake.deb
.fonte
Use o dpkg diretamente, não o apt-get ou o aptitude:
fonte
Sei que este é um post antigo, mas, como recentemente tive um problema semelhante, gostaria de compartilhar minha solução na esperança de que alguém no futuro ache útil.
Se você instalou um pacote via aptitude, ele atribui automaticamente sinalizadores às dependências (auto) e quando você tenta remover seu pacote novamente, ele tenta remover todas as dependências que ainda possuem o sinalizador automático definido.
Como você pode ver no meu caso, é o zabbix que eu quero remover:
E se procurarmos o pacote apache, fica assim
o primeiro sinalizador "i" nos diz que o apache está instalado
O próximo sinalizador "A" significa instalado automaticamente
Portanto, para corrigir isso e não ter o apache, o mysql e o php desinstalados, podemos apenas remover a flag automática com o aptitude como este:
Agora fica assim ao remover o pacote zabbix:
Verifique a página de manual do aptitude para obter mais detalhes
fonte
É exatamente
apt-mark hold
para isso.apt-mark hold package_name
A partir da documentação:
Para retirar um pacote:
apt-mark unhold package_name
fonte
The following packages have unmet dependencies: mysql-server-5.7 : Depends: apparmor (>= 2.10) but it is not going to be installed E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
No AFAIK, não há como remover um pacote usando o APT sem também remover os pacotes que dependem dele.
Referência: http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html
fonte
Para completar a resposta de João Pinto, você pode usar meu pequeno script para corrigir um pacote quebrado, este script criará um pacote fictício com equivs e o instalará. Você pode encontrar um artigo no meu blog em francês .
Ou diretamente no código da essência .
Para usá-lo:
fonte