Featured image of post Restaurer des fichiers supprimés depuis leurs paquets Debian/Ubuntu

Restaurer des fichiers supprimés depuis leurs paquets Debian/Ubuntu

Il y a peu, en bidouillant mes lanceurs Unity sous Ubuntu, j’ai supprimé le dossier /usr/share/icons du système. La conséquence a été plutôt rapide : le système s’est plus ou moins figé, impossible de lancer un programme quel qu’il soit (donc pas de terminal), relancer la session ou redémarrer la machine ne changeait rien…

Heureusement, il était toujours possible de basculer en mode terminal avec un petit Ctrl + Alt + F1. Après quelques recherches sur Internet, j’ai pu trouver les commandes qui m’ont été utiles. L’idée ici était de faire la liste des paquets Ubuntu qui avaient installé un fichier dans /usr/share/icons. Pour cela, dpkg a été bien pratique

$ dpkg -S /usr/share/icons
tango-icon-theme, clementine, gimp-data, filezilla-common, geany-common, gnome-accessibility-themes, gnome-orca,
aisleriot, ubuntu-mono, evince-common, eog, humanity-icon-theme, gnome-mines, empathy-common, blender-data,
gnome-mahjongg, gnome-user-share, openjdk-7-jre:amd64, hicolor-icon-theme, cabextract, deja-dup, sqliteman,
smuxi-frontend-gnome, meld, software-center, libpeas-common, unity-asset-pool, gnome-online-accounts,
libgweather-common, gnome-power-manager, gnome-icon-theme, gnome-icon-theme-symbolic, unity-control-center,
update-notifier, homebank, indicator-sync, imagemagick, unity-webapps-common, gparted, gnome-sudoku, gnome-media,
xterm, vlc-data, audacious, file-roller, onboard, totem-common, ibus, unity-control-center-signon, btsync-gui-gtk,
webbrowser-app, software-properties-gtk, ubuntu-artwork, indicator-session, indicator-messages, gnome-disk-utility,
gnome-control-center-data, activity-log-manager, chromium-browser, poedit, unity-settings-daemon, dconf-editor,
rhythmbox-data, network-manager-gnome, audacity-data, gnome-settings-daemon, apport, synaptic, aptdaemon-data,
shotwell-common, skype-bin, icedtea-netx-common, modemmanager, dropbox, seahorse, gcr, brasero-common,
landscape-client-ui-install, dmz-cursor-theme, baobab, indicator-printers, cheese-common, gnome-bluetooth,
gnome-session-common, usb-creator-gtk, xchat, gnome-system-log, ubuntuone-client-data, gnome-nettool,
unity-scope-gdrive, xcursor-themes, transmission-common, remmina-common, deluge-gtk,
libreoffice-common: /usr/share/icons

On a donc une liste des paquets que l’on va devoir réinstaller. La commande est la suivante

sudo apt-get install --reinstall <paquet>

En temps normal, j’aurais copié la liste dans un éditeur de texte digne de ce nom, puis j’aurais édité en bloc pour construire la commande dont j’ai besoin. Ici, pas d’autre choix que de tout faire en ligne de commande...

Dans apt-get, si l’on veut installer plusieurs paquets, il faut les séparer par des espaces. C’est la même chose pour les réinstaller. On a donc besoin de nettoyer un peu la sortie de dpkg -S

$ dpkg -S /usr/share/icons | sed -e 's/,//g'
tango-icon-theme clementine gimp-data [...] deluge-gtk libreoffice-common: /usr/share/icons

Beaucoup mieux, mais on a toujours un rappel du dossier recherché à la fin de la liste. Qu’à cela ne tienne

$ dpkg -S /usr/share/icons | sed -e 's/,//g' | sed -e 's/: \/usr\/share\/icons//g'
tango-icon-theme clementine gimp-data [...] deluge-gtk libreoffice-common

Oui je sais ça commence à se compliquer, mais c’est bientôt fini... Il nous reste à passer cette jolie liste de paquets en paramètre de apt-get

sudo apt-get install --reinstall $(dpkg -S /usr/share/icons | sed -e 's/,//g' | sed -e 's/: \/usr\/share\/icons//g')

Il est temps de prendre un petite pause, la réinstallation de tous les paquets va prendre un peu de temps... Une fois réinstallés, il suffit de repasser en mode graphique (Ctrl + Alt + F7), et tout rentre dans l’ordre.

J’ai quand même eu la chance dans ce cas d’avoir supprimé des fichiers moyennement importants pour le fonctionnement général du système. Ça aurait pu être beaucoup plus compliqué avec /usr/bin ou autre. Il faut toujours réfléchir à deux fois avant d’envoyer un sudo rm -fr sur quelque chose !

Crédit photo : Robert Linder

comments powered by Disqus
Généré avec Hugo
Thème Stack conçu par Jimmy