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?
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 ubiquity
name__).
Pourquoi le problème est-il arrivé?apt-get remove jpeg*
va pas supprimer tous les paquets commençant par jpeg
name__. Au lieu de cela, il supprimera tous les paquets contenant jpe
dans 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 .
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.
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
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)
Installez le buntu-desktop paquet
Sudo apt-get update && Sudo apt-get install ubuntu-desktop
Il installera les packages nécessaires pour votre système.
J'ai accidentellement supprimé libssl1.0.0
et ma machine était paralysée. Pour restaurer, j'ai fait:
cp /var/log/apt/term.log ~/libssl.term.log
vi ~/libssl.term.log
ping google.com
), redémarrez en mode de récupération et activez la mise en réseau.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