53 votes

Comment supprimer une version deb sans supprimer ses dépendances ?

Je souhaite installer la version la plus récente de boto ce que je fais via python setup.py install

Pourtant, lorsque j'essaie de supprimer l'ancienne version, les paquets suivants sont également supprimés :

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

Comment puis-je dire au gestionnaire de paquets de supprimer boto, et de le marquer comme installé en externe (ou quelque chose comme ça) pour qu'apt n'essaie pas de réparer la dépendance manquante ?

Nous vous remercions,
Maxim.

70voto

Utilisez directement dpkg, et non pas apt-get ou aptitude :

sudo dpkg -r --force-depends "packagename-version"

o

sudo dpkg -r --force-depends "packagename"

16voto

Marcio Points 261

C'est exactement ce que apt-mark hold est destiné à.

apt-mark hold package_name

Extrait de la documentation :

hold est utilisé pour marquer un paquet comme étant retenu, ce qui empêchera l'installation, la mise à jour ou la suppression automatique du paquet. La commande n'est qu'une enveloppe autour de dpkg --set-selections et l'état est donc

Détacher un paquet :

apt-mark unhold package_name

15voto

Lorin Hochstein Points 11816

Vous pouvez créer un paquet .deb factice à l'aide de la commande equivs il fournira la dépendance sans installer de fichiers. Il suffit ensuite de remplacer le paquetage actuellement installé par la version factice en utilisant l'utilitaire dpkg -i fake.deb .

3voto

Thomas Points 715

AFAIK, il n'y a aucun moyen de supprimer un paquet à l'aide d'APT sans supprimer également les paquets qui en dépendent.

Référence : http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html

1voto

Anjana Points 367

Pour compléter la réponse de João Pinto, vous pouvez utiliser mon petit script pour réparer un paquet cassé, ce script créera un paquet factice avec les équivalents et l'installera. Vous pouvez trouver un article sur mon blog en français .

Ou directement sur code gist .

Pour l'utiliser :

$ ./gen-dummy-package.sh --install|i [packageName]+
# e.g. :
$ ./gen-dummy-package.sh -i rfkill nome-bluetooth bluez

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X