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