Como removo apenas um pacote específico com o apt-get?


18

Acabei de instalar o servidor MySQL e todas as suas dependências, entre outras necessidades. Mas quando foi configurar o mysql-server, ele não conseguiu e emitiu um erro. Qual erro não é relevante aqui, pois consegui localizar o problema como um problema de dependência entre o mysql-server e o mysql-common. O Mysql-common precisa ser removido.

Mas quando eu vou para

apt-get purge remove mysql-common 

Ele também quer remover automaticamente tudo o que estiver associado a ele, incluindo todas as dependências do mysql, até mesmo o apache2 e o php5.

Então, qual argumento precisa ser adicionado ao comando apt-get para desinstalar o pacote ONLY ONE, e ainda deixar todos os outros intactos.

Respostas:


21

O apt-get não permitirá que você faça isso, já que é uma etapa potencialmente perigosa para um sistema de gerenciamento de pacotes permitir.

Desde que você esteja ciente de que pode haver consequências, use dpkgcom a --removeopção para fazê-lo. Por exemplo:

sudo dpkg --remove mysql-common

Nota : No meu sistema 12.04 com apache2, php5, mysql-serverinstalado separadamente, usar apt-getpara remover mysql-commonNÃO deseja remover apache2 ou php5 .

Do comentário da insônia: Se você precisar substituir a decisão do sistema de dependência, poderá (com muito cuidado e garantir que sabe o que está fazendo) usar um adicional --force-depends.

sudo dpkg --remove --force-depends mysql-common

Ok obrigado. Muitos outros alegaram que funcionou. Quero dizer muitas pessoas. Mas sim, isso acontece no ubuntu. Mas eu estou realmente no debian. Mas eu perguntei aqui, porque eu sou um usuário aqui, e eles são muito semelhantes e o sistema de pacotes é o mesmo .. obrigado broto.
Insomnia

não se preocupe cara. Eu não vou deixar você pendurado. Eu sempre aceito. As pessoas geralmente o ignoram depois que eu aceito e ainda há um problema. Mas eu apenas tentei e não me deixou. Existe um comando de força?
Insomnia

Desculpe, isso mesmo - acho que você precisa esperar um certo tempo antes de poder fazê-lo - 15 minutos, eu acho? Por favor, tente novamente sempre que tiver uma chance, sem pressa. Além disso, acabei de notar que você mencionou que está usando o Debian - observe que as perguntas que envolvem o Debian são fora de tópico e geralmente são fechadas como tal. Por favor, considere perguntando sobre unix.stackexchange.com para específico Debian-algo no futuro :)
ish

Sim, eu percebi como tal .. a principal razão pela qual eu realmente não a mencionei até que eu precisasse. Quero dizer, seus gerenciadores de pacotes são os mesmos, o Ubuntu apenas suporta o debian. mas tudo bem. a coisa de 15 minutos não funciona, porque tentei muito mais do que 15 minutos depois. Mas não posso digitar algo semelhante ao "dpkg -f --remove mysql-common"?
Insomnia

Se plain --removedá um aviso e aborta, com certeza, você pode forçá-lo -f. BTW, --removeé o mesmo que -r.
Ish

0

Se alguém quiser saber lá o comando debian de 2014 é:

dpkg --force-all -r name_of_package

Mudou um pouco

Há muitos argumentos --force -, portanto, para fins de dependência, verifique-os melhor:

dpkg --force-help

--force-allDefinitivamente não é seguro, por que não sugerir --force-dependsE fornecer um aviso apropriado também?
guntbert 13/09/14

Nunca é seguro excluir um pacote necessário para outros pacotes sem desinstalar o outro. --force-all é apenas uma abordagem rápida e suja
Michal Sapsa
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.