8 votes

Comment réinstaller plusieurs paquets supprimés en une seule fois ?

J'ai utilisé sudo apt-get remove python et a accidentellement supprimé un tas de paquets qui étaient nécessaires. Je me suis connecté via la ligne de commande et j'ai réinstallé ubuntu-desktop, mais d'autres paquets sont manquants, et je cherche un moyen de réinstaller facilement les paquets supprimés. Puisqu'il y a un journal dans le centre logiciel, je voulais demander quel serait le moyen le plus simple de revenir en arrière ou d'extraire la liste des paquets supprimés du centre logiciel...

note : J'ai tapé sudo apt-get install .... .... ... ... pour environ deux douzaines de ces programmes supprimés dans cette liste, mais lorsque j'ai appuyé sur Entrée, il n'en a installé aucun car certains noms de paquets n'ont pas pu être trouvés.

Les programmes ont été supprimés à la même date.

17voto

enzotib Points 86709

Tout d'abord, laissez-moi dire que retirer python peut conduire à ce que de nombreuses commandes fondamentales ne fonctionnent plus. Je ne sais donc pas si ce qui suit va fonctionner.

Deuxièmement, je suppose que le package names couldn't be found que vous avez, provient d'un nom mal orthographié sur la ligne de commande, ou d'un paquet installé localement et non disponible dans les dépôts.

Ensuite, pour obtenir un journal des paquets supprimés, il faut aller jusqu'au dernier paquet. dpkg disponibles (je ne pense pas qu'il faille prendre en compte les anciens journaux) :

awk '$3 == "remove" { print $1, $2, $4 }' /var/log/dpkg.log | tee list

Puis modifiez le list créé dans le répertoire actuel, et ne laisse que les lignes relatives aux paquets que vous voulez réinstaller, en se basant sur l'horodatage de la ligne. Disons que vous enregistrez le fichier modifié dans list-mod .

Pour réinstaller ces paquets, utilisez la commande suivante :

sudo apt-get --simulate install $(awk '{ print $3 }' list-mod)

J'ai inséré le --simulate pour voir ce que fait la commande. Si tout va bien, recommencez la commande en supprimant cette option.

Si la commande indique que certains paquets ne peuvent être trouvés, il suffit de les supprimer de la liste des paquets. list-mod et réessayez.

2voto

Bala Points 89

Donc, il m'arrive de faire une erreur similaire : sudo apt-get purge python3.6* au lieu de sudo apt-get purge python3.6.* .

J'ai pu le réparer assez rapidement, en suivant les étapes suivantes :

  1. Ouverture du journal vim /var/log/history.log .
  2. Recherche de ma mauvaise commande en utilisant la commande vim /python3.6\* .
  3. Il y avait une ligne Purge: unity-control-center-signon:amd64 (0.1.7~+14.04.20140211.2-0ubuntu4), ... avec une longue liste de paquets purgés (en cas de suppression, elle commencera avec Remove: ), que j'ai copié dans un autre fichier sans l'option Purge: pour travailler avec elle.
  4. Dans ce fichier, j'ai lancé la commande vim : %s/:[^,]*,//g ce qui a supprimé la partie version et m'a laissé avec une liste de paquets unity-control-center-signon lxc ... .
  5. Enfin, j'ai copié une ligne de l'étape précédente et j'ai exécuté : sudo apt-get install unity-control-center-signon lxc ... et c'est ainsi qu'il a été réparé.

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