web-dev-qa-db-fra.com

Le système Ubuntu est en panne après la désinstallation accidentelle de nombreux paquets

J'ai accidentellement supprimé tous les paquets commençant par le nom jpeg avec:

Sudo apt-get remove jpeg*

Cela a bousillé beaucoup de choses, enlevé Unity, Firefox, Flash Player, etc.

J'ai réussi à récupérer le bureau et l'unité, mais beaucoup de choses sont encore boguées. Par exemple, les fichiers .rpm et .tag.gz ne s'ouvrent tout simplement pas.

Ce que je veux, c'est un moyen de réparer tout ce qui ne va pas. Quelque chose qui équivaut à une "installation de réparation" avec un disque Windows.

Des conseils, quelqu'un?

20
Programming Noob

Vous pouvez installer la tâche ubuntu-desktop:

Sudo apt-get install ubuntu-desktop^

Cela installera tous les paquets du bureau Ubuntu standard que vous avez supprimé. Il ne restaure pas les paquets que vous aviez installés qui ne font pas partie du bureau standard (c.-à-d. Qu'il réinstallera Unity et Firefox, mais pas le lecteur Flash).

Pour installer ces packages, vous pouvez consulter /var/log/apt/history.log et voir exactement ce que vous avez supprimé.

Remarque: l'installation de la tâche ubuntu-desktop^ n'est pas la même chose que l'installation du package ubuntu-desktop. Le premier donnera à APT quelques astuces pour résoudre les dépendances impliquant des paquets virtuels, le dernier donnera à APT la liberté de choisir des paquets (et finira par installer des choses inutiles comme ubiquityname__).

Pourquoi le problème est-il arrivé?apt-get remove jpeg* va pas supprimer tous les paquets commençant par jpegname__. Au lieu de cela, il supprimera tous les paquets contenant jpedans leur nom. C'est parce qu'apt-get fonctionne avec une expression régulière, de sorte que jpeg * signifie: tout ce qui contient jpe suivi de zéro ou plus g .

35
Andrea Corbellini

La meilleure façon de résoudre ce problème pourrait être de réinstaller Ubuntu. (Vous devez d'abord sauvegarder vos documents, même si vous envisagez de les réinstaller sans reformater.)

Si vous voulez essayer de réparer le système en place, consultez les fichiers journaux du gestionnaire de paquets pour voir quels paquets ont été supprimés, puis réinstallez-les:

  • /var/log/dpkg.log (informations complètes, mais difficile à lire)
  • /var/log/apt/history.log (abrégé par vous indiquera chaque paquet supprimé ou modifié d'une autre manière - probablement votre meilleur pari)
  • /var/log/apt/term.log (si vous supprimez les paquets avec apt-get dans le terminal, cela devrait montrer ce que vous avez vu à l’époque, y compris une liste des paquets qui allaient être supprimés - donc ceci pourrait être le meilleur moyen)

Réinstaller uniquement les paquets dont le nom commence par jpeg ne fonctionnera pas, car beaucoup (presque certainement) des paquets supprimés ont été supprimés car ils s'appuyaient sur ces paquets.

À l'avenir, je vous recommande de vérifier attentivement les conséquences de la désinstallation d'un paquet. Si vous travaillez à partir de la ligne de commande, vous en serez toujours averti. (Sauf si vous utilisez l'option -y, dans ce cas, généralement pas. Je vous recommande de ne pas utiliser cette option, sauf si vous savez ce que vous faites, en particulier pour les suppressions.)

Une façon de vérifier les conséquences d'une opération de gestion de paquet effectuée avec apt-get, sans les mettre en péril, consiste à exécuter apt-get -s au lieu de Sudo apt-get. Cela simule simplement l'action spécifiée et indique quels paquets seront affectés et comment.

8
Eliah Kagan

J'exécute Sudo apt-get purge wine* sur Ubuntu 15.10, donc pas d'interface graphique sur l'option de connexion au démarrage uniquement.

Comme Eliah Kagan a suggéré d'utiliser les informations de /var/log/apt/history.log, je lance nano sur history.log et j'ai créé un script simple contenant Sudo apt-get install sur tous les paquets purgés trouvés à la ligne:

Purge: evolution:AMD64 (3.16.5-1ubuntu3.1), libtotem-plparser18:AMD64 (3.10.5-1) ...... etc

Mais je devais d'abord supprimer manuellement le texte entre tous: et, y compris le:,

à ce stade, un nouveau script serait utile car les paquets étaient des centaines. Après cela, j’ai exécuté le script et enlevé quelques Unable to locate packages (que j’avais installés manuellement). Exécutez le script à nouveau et c'est tout. Tout fonctionne bien ... heureusement

1
kominato

Voici un petit script python dans lequel vous pouvez écrire la chaîne de paquet (inutilisable) issue de votre désinstallation en masse, qui se trouve sur /var/log/apt/history.log. Il va générer une chaîne que vous pouvez copier coller dans la commande apt-get install afin d’installer facilement tous les paquets supprimés.

import re

apt_str = u"INSERT YOUR PACKAGE STRING HERE, BETWEEN THE QUOTES"

match =  re.findall(r'([\w\d\.-]+).+? \(.+?\)', apt_str)
print " ".join(match)
0
joaoroque

Installez le buntu-desktop Install ubuntu-desktop paquet

Sudo apt-get update && Sudo apt-get install ubuntu-desktop

Il installera les packages nécessaires pour votre système.

0
Tachyons

J'ai accidentellement supprimé libssl1.0.0 et ma machine était paralysée. Pour restaurer, j'ai fait:

  1. Sauvegardez les journaux de ce qui a été supprimé cp /var/log/apt/term.log ~/libssl.term.log
  2. Supprimer les lignes sans lien avec l'action libssl vi ~/libssl.term.log
  3. Si la mise en réseau est manquante (impossible avec ping google.com), redémarrez en mode de récupération et activez la mise en réseau.
  4. Réinstallez les paquets supprimés cat ~/libssl.term.log | grep ^Removing | sed -e 's/^Removing //g;s/ (.*$//g;/diversion of/d;/dangling symlinks/d' | xargs Sudo apt-get -y install
0
Eric Landry