Contenu accidentellement supprimé de / usr / local [duplicate]


0

Cette question a déjà une réponse ici:

J'ai accidentellement publié «sudo rm -rfd *» dans le répertoire / usr / local. Que devrais-je faire pour au moins retrouver le résultat d'une nouvelle installation (Linux Mint 15)?



1
/usr/localcontient généralement des fichiers provenant d'applications qui ne sont pas installées à l'aide du gestionnaire de paquets. Si vous ne le faisiez pas, il était probablement vide, à l'exception des répertoires de niveau supérieur.
Paul

Réponses:


1

N'essayez jamais de récupérer des fichiers système

Oh, s'il vous plaît, ne recommandez jamais de récupération de fichier pour les fichiers système! La récupération de fichier peut être tentée sur des fichiers plus uniques , comme un texte que vous avez écrit vous-même.

Récupérer des fichiers du système, c'est quémander des ennuis.

1ère solution

Pour votre système, réinstallez-le simplement. Vous n'avez pas besoin de nettoyer / formater quoi que ce soit pendant l'installation: tout ce qui manque sera simplement remplacé. Vous aurez juste à mettre à jour comme d'habitude.

Mais cela ne devrait pas être nécessaire car il /usr/localest certainement vide sur votre système.

2ème solution

D'habitude, il n'y a presque rien dans ce dossier. Si vous savez que vous y avez installé quelque chose, réinstallez-le.

Enfin, certains paquets peuvent avoir mis des fichiers dedans. Ouvrez simplement un terminal et vérifiez que les commandes suivantes ne génèrent rien:

dpkg --get-selections | cut -f 1 | xargs dpkg -L | grep /usr/local

Des explications

Ce qu'il fait est assez simple:

dpkg --get-selections 

affichera la liste des paquets installés sur votre système au format suivant:

package_name                      installed

Mais nous voulons seulement package_namepour chaque ligne:

| cut -f 1 

|indique bash(le programme qui s'exécute dans le terminal) que la sortie de la commande précédente ne doit pas être affichée mais "acheminée" dans le programme suivant (ici cut).

cut, comme son nom l’indique, coupera chaque ligne en mots et ne gardera que le premier champ ( -f 1) qu’elle affichera.

Pour résumer,

dpkg --get-selections | cut -f 1

devrait renvoyer la liste des paquets installés sur votre système.

Nous pouvons maintenant diriger cette liste vers xargslaquelle agit tel que "pour chaque élément de la liste do ...".

Ici,

xargs dpkg -L 

va exécuter:

dpkg -L package1
dpkg -L package2
dpkg -L package3
...

pour chaque nom de paquet que vous donnez à travers le tuyau.

dpkg -L mypackage liste les fichiers contenus dans le paquet nommé "mypackage".

Et maintenant, nous devons juste prendre cette liste de fichiers et vérifier si un paquet a effectivement créé un fichier /usr/local. Nous le faisons avec greplequel filtrera toute sortie ne contenant pas/usr/local .

Donc, si nous le mettons en ordre, nous obtenons d’abord la liste des packages installés, puis nous formatons cette liste pour ne conserver que les noms des paquets, puis nous listons les dossiers d’installation utilisés par le paquet, puis nous les filtrons pour ne conserver que ce qui est à l’intérieur. de /usr/local.

Si la commande ne renvoie rien, vous n'avez pas à vous inquiéter.

Alternative de l'interface graphique

À ma connaissance, il n'y a pas d'alternative graphique.


0

Il n'est pas nécessaire de réinstaller le système d'exploitation, car celui-ci ne doit rien stocker dans /usr/localou dans /opt(ces deux types sont plus ou moins identiques).

Cependant, tous les programmes que vous avez compilés vous-même ou qui ont été installés via un gestionnaire de paquets ou l’arborescence des ports peuvent très bien se retrouver dans / usr / local /.

Pour cela:

  1. Vérifiez vos sauvegardes. Ce qui était dans ces dossiers. Désinstallez et réinstallez ces programmes.
  2. Ou, en l'absence de sauvegardes, dressez une liste de tous les packages installés, puis désinstallez-les et réinstallez-les tous.

(Utilisez apt-get ou dpkg -l pour lister les paquets).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.