Comment nettoyer ma base de données dconf?


40

Dconf est assez jeune, pourtant ma base de données est déjà un désordre avec beaucoup de clés "sans schéma". Existe-t-il un moyen de nettoyer ou devrais-je recommencer à zéro (en supprimant ~ / .config / dconf / user, je suppose)?


toute chance que vous pouvez ajouter une capture d'écran de ce que vous voyez? Je ne vois pas le même problème.
fossfreedom

1
Utilisez n’importe quel logiciel utilisant GSettings / dconf, modifiez l’une des valeurs par défaut (par exemple, gnome-nettool, exécutez un whois), supprimez l’application. Vous avez maintenant les restes dans votre base de données (par exemple, dans apps.gnome-nettool). Bien si vous réinstallez ce logiciel ultérieurement, je souhaite néanmoins supprimer ces clés.
Htorque

Une recherche rapide en ligne m'a permis de trouver un projet Google Code qui semble faire quelque chose de similaire pour gconf ... ce projet pourrait-il être modifié pour fonctionner avec dconf?
Christopher Kyle Horton

Avez-vous essayé de regarder le fichier texte et d'essayer de trouver une opération de remplacement pour supprimer tous les éléments indésirables de votre dconf?
Severo Raz

Réponses:


34

Ceci est possible en utilisant la dconf resetcommande, même s'il n'est pas clair si c'est un effet secondaire d'un bogue.

  • Pour une clé unique:

    dconf reset "/path/to/the/key"
    

    Ne doit pas finir avec un /.

  • Pour tout un chemin:

    dconf reset -f "/path/to/the/path/"
    

    Doit se terminer par a /.

Si vous faites cela en ayant dconf-editorouvert, il va probablement planter.


Cela fonctionne très bien. Pour les débutants, omettez les signes de citation lorsque vous indiquez des chemins. +1 à @htorque. Tx.
Cbhihe

Par souci d'exhaustivité, j'ajoute à mon commentaire d'hier que j'ai utilisé avec succès cette solution sur Trusty 14.04.2.
Cbhihe

3

Si vous souhaitez nettoyer la base de données dconf, vous devez d’abord vider toute la configuration de dconf via:

morfik:~$ cd ~/.config/dconf/
morfik:~/.config/dconf$ dconf dump / > user-backup
morfik:~/.config/dconf$ ls -al ./user-backup
-rw-r--r-- 1 morfik morfik 30.0K 2015-02-07 08:18:04 ./user-backup
morfik:~/.config/dconf$ rm user

Après ces étapes, vous devez rouvrir votre session graphique (déconnexion / entrée). Cela créera le ~/.config/dconf/userfichier à nouveau avec presque 0 contenu - paramètres par défaut.

Quant au user-backupfichier que vous avez créé précédemment, il s’agit d’un fichier texte brut:

...
[apps/light-locker]
late-locking=false
lock-after-screensaver=uint32 1
lock-on-suspend=true
...

Vous pouvez donc le modifier et supprimer les entrées / blocs souhaités de ce fichier. En d'autres termes, nettoyez-le.

Lorsque vous avez terminé, chargez-le:

morfik:~/.config/dconf$ dconf load / < ./user-backup
morfik:~/.config/dconf$ ls -al ./user-backup
-rw-r--r-- 1 morfik morfik 14.0K 2015-02-07 08:26:23 ./user-backup
morfik:~/.config/dconf$ dconf update /

Je pense que vous devriez recommencer votre session graphique après cela.

Et c'est tout, mais vous devez vous rappeler que toutes les entrées ayant des valeurs par défaut ne seront pas enregistrées - elles seront créées de nouveau lorsque l'application les demandera, ce qui est une bonne chose car vous souhaitez sauvegarder uniquement les valeurs que vous avez modifiées. .


Cela ne semble en fait avoir aucun effet sur le sous-chemin dconf en cours de vidage modifié et rechargé. (Je travaille avec une Ubuntu 14.04.2 entièrement mise à jour et j'essaie de supprimer toutes les clés relatives au paquet indicateur-netspeed-unit de ppa: fixnix / netspeed.) Cela ressemble à une façon propre N'effectuez aucun changement.
Cbhihe

Je l'ai refait pour être sûr, mais je confirme que cela n'affecte aucun changement. Je suppose que j'ai voté cette réponse un peu trop vite. Je ne peux pas défaire ça maintenant.
Cbhihe

J'ai mis à jour la réponse, vérifiez-la - cela fonctionne pour moi.
Mikhail Morfikov

Oui, ça marche bien maintenant. Suppression de ~ / .config / dconf / user avant de mettre fin à votre session d'unité et de recommencer à zéro étaient les étapes manquantes. Le vote positif se lève. Merci.
Cbhihe

Cela m'a sauvé quand j'ai eu un écran noir après m'être connecté à gnome. Après avoir ouvert un tty avec Alt+Ctrl+F3, j’ai pu exécuter ces étapes. Une commande supplémentaire utile consistait sudo pkill -u <username>à redémarrer la session de bureau gnome active.
Zoltán

1

Installez gconf-cleanerdepuis le centre logiciel.
sudo apt-get install gconf-cleaner

Dans leurs propres mots "GConf Cleaner est un outil de nettoyage de votre base de données Gconf qui est peut-être encombré de clés inutiles ou invalides."


N'existe plus dans le centre logiciel à partir d'Ubuntu 18.04 (et peut-être plus tôt)
vanadium
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.