254 votes

Comment réinstaller un paquet en utilisant 'apt-get' ?

Il semble que mon aptitude est en quelque sorte cassé :

sudo aptitude update
0% [Working]Segmentation fault

dmesg
[223282.616599] aptitude[30972]: segfault at 67707f ip 7f954dcfae5d sp 7ffff5a5f950 error 4 in libapt-pkg-libc6.7-6.so.4.6.0[7f954dca5000+bd000]

Je voudrais donc réinstaller aptitude en utilisant apt-get .

Malheureusement, il semble apt-get n'a pas d'option de réinstallation.

Comment pourrais-je obtenir aptitude pour travailler à nouveau ?

Il est possible que j'aie trouvé la cause première du défaut d'aptitude. Voici comment je peux la reproduire :

  1. Connexion à distance 'ssh' à la machine Debian via le terminal rxvt de Cygwin (depuis une édition allemande de Windows 7 64 bits).
  2. Agrandir la fenêtre rxvt pour qu'elle s'étende sur deux moniteurs (oui, j'ai deux moniteurs)
  3. Exécuter aptitude update . Note : lorsque je redimensionne le terminal rxvt à la normale, je n'ai plus ces défauts de segmentation !

0 votes

Ce sont deux grandes questions distinctes. L'une est comment réinstaller un paquet, ce qui est dans le titre et qui est répondu. L'autre est de savoir comment gérer un plantage d'aptitude sur un terminal trop large.

404voto

user23307 Points 6595
$ man apt-get | grep reinsta -A2
       --reinstall
           Re-Install packages that are already installed and at the newest
           version. Configuration Item: APT::Get::ReInstall.

Donc, pour l'utiliser pour réinstaller aptitude utiliser :

sudo apt-get install --reinstall aptitude

19 votes

Qu'est-ce que c'est ? -A5 Vous êtes en train de chercher ?

101 votes

Man grep | grep -- "-A"

39 votes

Qu'est-ce que c'est ? -- que tu cherches ?

160voto

Milad Khajavi Points 1593

Vous pouvez réinstaller un paquet avec sudo apt-get install --reinstall packagename . Cela supprime complètement le paquet (mais pas les paquets qui en dépendent), puis réinstalle le paquet.

Cela peut être pratique lorsque le paquet a de nombreuses dépendances inverses.

16 votes

Merci d'avoir été la seule réponse correcte, complète et non rancunière.

6 votes

@Cerin : Je ne qualifierais pas les autres réponses de trop hargneuses : même la réponse "lisez la page de manuel" donnait en fait la réponse ainsi que la façon de la trouver.

59 votes

@DavidSpillett, je ne suis pas du tout d'accord. Les pages de manuel sont généralement très mal écrites et sont très peu conviviales pour les débutants. Par exemple, le paragraphe sur l'option "--reinstall" ne mentionne pas que vous devez l'utiliser avec l'argument "install". Un débutant pourrait légitimement demander "pourquoi dois-je lui dire d'installer ET de réinstaller ?". Une réponse disant à quelqu'un d'aller voir ailleurs est la pire des réponses et cela me fait mal de la voir avec le plus de votes, surtout quand une réponse complète et réellement utile se trouve tout en bas.

35voto

andreskwan Points 441

Parfois, il faut aussi restaurer les fichiers de configuration, et pas seulement réinstaller.

sudo apt-get install --reinstall xxxx

Réinstallez l'application, conservez les fichiers de configuration.

Cela pourrait être utile, mais parfois vous avez besoin de repartir à zéro, alors ce que j'utilise est ceci :

sudo dpkg -r xxxx //to remove that xxxx package
sudo dpkg -P xxxx //to purge all related files

puis

sudo apt-get install xxxx

8 votes

Et si vous avez besoin de restaurer uniquement les fichiers de configuration, dans certains cas (s'ils sont gérés par ucf) vous devriez utiliser UCF_FORCE_CONFFMISS=1 apt-get --reinstall install [pkgname] .

2 votes

Cette réponse mérite un GRAND vote positif. C'est ce dont vous avez besoin lorsque vous voulez "réinstaller complètement" un paquet. Par exemple, une simple --reinstallation de vsftpd ne recrée pas le fichier de configuration, même si le fichier n'existe plus. Un "Remove+Purge+(Re)install" fait le travail à la place.

14voto

David Spillett Points 23094

Vous devriez pouvoir supprimer aptitude et le réinstaller en toute sécurité, car cela n'affectera pas les autres utilitaires apt. Donc : apt-get remove aptitude suivi par apt-get install aptitude ou si cela ne marche toujours pas, essayez apt-get purge aptitude suivi par apt-get install aptitude .

Avant de faire l'une ou l'autre des choses ci-dessus, je recommande une vérification complète du système de fichiers et du bad-block au cas où il y aurait un problème à l'origine du problème (selon le problème, s'il y en a un, une activité supplémentaire pourrait aggraver les choses). Assurez-vous également de passer en revue ce qui sera supprimé lors de l'étape de suppression/purge avant de la laisser se dérouler (elle devrait s'interrompre pour demander la permission si quelque chose d'autre est modifié à la suite de la suppression de ce seul paquet), afin de vérifier une nouvelle fois que je pense que cette opération est sûre.

0 votes

Merci beaucoup ! apt-get remove suivi par apt-get install a fait l'affaire !

0 votes

Il y a longtemps que j'ai fait des choses comme a full filesystem check ou similaire. Pourriez-vous me donner un petit conseil sur la manière de procéder ?

1 votes

fsck -f <block_device> comme fsck /dev/sda1 . Le système de fichiers devra être démonté ou monté en lecture seule à ce moment-là. Comme il s'agit probablement de votre système de fichiers racine, vous devriez redémarrer en mode mono-utilisateur ou démarrer à partir d'autre chose comme un CD live.

3voto

Niwla23 Points 31

Si vous voulez une réinstallation avec un nettoyage complet de la configuration : sudo apt remove --purge package sudo apt install package

C'est comme si vous n'aviez jamais installé le paquet auparavant. Je fais cela souvent avec le mouvement et d'autres choses du genre.

0 votes

Le problème avec cette technique est qu'elle supprime toutes les modifications que vous avez apportées aux paramètres dans la rubrique /etc/... ce qui n'est peut-être pas ce que vous voulez...

0 votes

Dans d'autres cas, cela peut être exactement ce que vous voulez. Parfois, vous voulez juste récupérer la configuration originale ou faire un nettoyage.

1 votes

Absolument. En fait, lorsque je teste mes nouveaux paquets, je le fais souvent jusqu'à ce que je sois satisfait du processus d'installation. Cela peut donc être très utile. D'un autre côté, cela peut être un piège si vous ne sauvegardez pas d'abord vos paramètres avec certaines données spécifiques que vous n'avez nulle part ailleurs (vous pouvez probablement les retrouver, mais cela peut prendre du temps).

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