Comment supprimer un seul package spécifique avec apt-get?

18

Je viens d'installer MySQL-server et toutes ses dépendances, entre autres nécessités. Mais quand il est allé configurer mysql-server, il ne l'a pas fait et a craché une erreur. Quelle erreur n'est pas pertinente ici car j'ai réussi à localiser le problème comme un problème de dépendance entre mysql-server et mysql-common. Mysql-common doit être supprimé.

Mais quand je vais

apt-get purge remove mysql-common 

Il souhaite également supprimer automatiquement tout ce qui y est associé, y compris toutes les dépendances mysql, même apache2 et php5 ..

Donc, quel argument doit être ajouté à la commande apt-get pour désinstaller UN SEUL paquet, tout en laissant tous les autres intacts.

insomnie
la source

Réponses:

21

apt-get ne vous laissera pas faire cela, car c'est une étape potentiellement dangereuse pour un système de gestion de paquets.

Tant que vous êtes conscient qu'il peut y avoir des conséquences, utilisez-le dpkgavec l' --removeoption de le faire. Par exemple:

sudo dpkg --remove mysql-common

Remarque : Sur mon système 12.04 avec apache2, php5, mysql-serverinstallé séparément, utiliser apt-getpour supprimer mysql-commonNE veut PAS supprimer apache2 ou php5 .

D'après le commentaire de l'insomnie: si vous devez annuler la décision du système de dépendance, vous pouvez (avec beaucoup de soin et vous assurer que vous savez ce que vous faites) en utiliser un supplémentaire --force-depends.

sudo dpkg --remove --force-depends mysql-common
ish
la source
D'accord merci. Beaucoup d'autres ont affirmé que cela fonctionnait. Je veux dire beaucoup de gens. Mais oui, cela se produit sur Ubuntu. Mais je suis en fait sur Debian. Mais j'ai demandé ici parce que je suis un utilisateur ici, et ils sont très similaires et le système de package est le même .. merci bud.
insomnie
ne t'inquiète pas mec. Je ne vais pas te laisser pendre. J'accepte toujours. Les gens l'ignorent généralement après avoir accepté et il y a toujours un problème. Mais je viens de l'essayer et ça ne me laissait pas. Existe-t-il un commandement de force?
insomnie
Désolé, c'est vrai - je pense que vous devez attendre un certain temps avant de pouvoir le faire - 15 minutes, je pense? Veuillez réessayer chaque fois que vous en avez l'occasion, pas pressé. De plus, je viens de remarquer que vous avez mentionné que vous utilisez Debian - notez que les questions impliquant Debian sont hors sujet et sont souvent fermées en tant que telles. Veuillez envisager de demander à unix.stackexchange.com quelque chose de spécifique à Debian à l'avenir :)
ish
Ouais, je pensais en tant que tel .. principale raison pour laquelle je ne l'ai pas vraiment mentionné avant d'avoir besoin. Je veux dire que leurs gestionnaires de paquets sont les mêmes, Ubuntu vient de remplacer Debian. mais bien. la chose de 15 minutes ne fonctionne pas cependant, car j'ai essayé bien plus longtemps que 15 minutes après. Mais je ne peux pas taper quelque chose de similaire à "dpkg -f --remove mysql-common"?
insomnie
Si plain --removevous donne un avertissement et abandonne, bien sûr, vous pouvez le forcer avec -f. BTW, --removeest le même que -r.
ish
0

Si quelqu'un voudrait y savoir, Debian 2014 commande son:

dpkg --force-all -r name_of_package

C'est un peu changé

Il y a beaucoup d'arguments --force- donc pour des raisons de dépendance, mieux les vérifier en:

dpkg --force-help
Michal Sapsa
la source
--force-alln'est certainement pas sûr, pourquoi ne pas suggérer --force-dependsET fournir un avertissement approprié aussi?
guntbert
Il n'est jamais sûr de supprimer le package qui est nécessaire pour d'autres packages sans désinstaller l'autre. --force-all est juste une approche rapide et sale
Michal Sapsa