Nettoyer le registre macOS (defaults)
 >  2018 , Système , Informer et partager






Après avoir fait du ménage dans les applications que je n'utilise sur le Macbook Pro, j'ai été voir du côté de la commande "defaults", voir ce qu'il y trainait. Sans surprise, la commande "defaults read" m'a retourné tout un tas d'information, même sur des logiciels que je n'ai plus. J'ai alors cherché un moyen de faire du ménage, à coup de "defaults delete"... je n'ai pas trouvé comment supprimer des valeurs de clés, j'ai donc trouvé un moyen d'y faire du ménage autrement.





0x01. BACKUP



Le registre de macOS se distingue en domaines, en clés et en valeurs. Le nettoyage de ce registre doit se faire prudemment afin de ne pas perdre sa configuration. C'est pourquoi il faut bien faire une sauvegarde :


defaults export com.apple.ServicesMenu.Services ./backup_com.apple.ServicesMenu.Services.db
 

Qui pourra être restauré ainsi :


defaults import com.apple.ServicesMenu.Services ./backup_com.apple.ServicesMenu.Services.db
 


Donc pour un export complet :


# La liste des domaines :
defaults domains|tr "," "\\n"
 
# Export complet dans le dossier backup :
mkdir backup ; defaults domains|tr "," "\\n"|sed 's/ //1'|while read domain ; do defaults export $domain backup/$domain.json ; done
 


Donc pour une restauration complète :


cd backup ; ls -1 *.json|while read domain ; do defaults import $domain backup/$domain.json ; done
 




0x02. EXPORT AU FORMAT TEXTE


L'export au format "texte" se fait avec le parcours du domaine en le redirigeant vers un fichiers de sortie (>)


defaults read com.apple.ServicesMenu.Services > ./altered_domain
 


À ce moment là, il faut éditer le fichier ./altered_domain, et y retirer ce qui doit être enlevé, exemple, s'il s'agit de désinstallation Microsoft Office, il faut alors rechercher toutes les clés/variables contenant la chaine "microsoft" (en ignorant la casse), et les supprimer. Et faire bien attention de supprimer la ligne ou le bloc. Le format est proche du JSON.

Le tout en prenant soin de supprimer la chaine :


Found 1 keys in domain 'com.apple.ServicesMenu.Services': 


L'idée est donc ensuite de supprimer l'ancien domaine et de le recréé avec les nouvelles données :


defaults delete com.apple.ServicesMenu.Services
defaults write com.apple.ServicesMenu.Services "$(cat ./altered_domain)"
 



   =>   Écrit par : Nicolas, le 25 février 2018


 
Mots clés :  
  macos 
  
  system 
    >   Articles connexes :

Comment gagner du temps sur Internet



/tmp et /var/log en noexec sur macOS



5003903