Ich habe kürzlich ein Upgrade von xubuntu 14.04 auf xubuntu 16.04 durchgeführt. Der Prozess endete, verlief aber nicht reibungslos (ich weiß nicht mehr warum).
firefox
Wenn ich jetzt eine Datei öffne ( Datei -> Datei öffnen ), stürzt der Prozess mit dem folgenden Fehler ab:
... GLib-GIO-ERROR **: Settings schema 'org.gtk.Settings.FileChooser' does not contain a key named 'sort-directories-first'
Ich habe im Internet gesucht und nichts Relevantes gefunden. Neu Installieren firefox
, gsettings-desktop-schemas
und gsettings-ubuntu-schemas
(mit apt-get install --reinstall ...
) nichts ändern. Ich habe auch versucht, die Schemas neu zu erstellen, aber der Fehler ist immer der gleiche:
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
Das (nicht so) lustige ist, dass der Schlüssel existiert!
grep sort-directories-first /usr/share/glib-2.0/schemas/*
Binary file /usr/share/glib-2.0/schemas/gschemas.compiled matches
/usr/share/glib-2.0/schemas/org.gnome.nautilus.gschema.xml: <key type="b" name="sort-directories-first">
/usr/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml: <key type="b" name="sort-directories-first">
Am Ende habe ich versucht, den Schlüssel manuell zu erstellen. Damit gsettings
beschwert sich der Schlüssel nicht:
gsettings set org.gtk.Settings.FileChooser sort-directories-first false
Not such key 'sort-directories-first'
Mit dconf
kann ich diesen Schlüssel erstellen, aber nichts ändert sich:
dconf write /org/gtk/settings/file-chooser/sort-directories-first false
/usr/share/glib-2.0/schemas/
? 2. Was ist die volle Leistung vongrep sort-directories-first /usr/share/glib-2.0/schemas/*
? ist es das, was du in der Frage gesagt hast?Antworten:
Die Datei
/usr/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml
existiert und enthält den gewünschten Schlüsselsort-directories-first
.Aus der Antwort von WinEunuuchs2Unix wissen wir, dass das System die Datei abhängig vom Wert der
XDG_DATA_DIRS
Umgebungsvariablen an einem Speicherort sucht .Was passiert also, wenn das System
org.gtk.Settings.FileChooser.gschema.xml
an einem anderen Ort sucht ?Die Fehlermeldung sagt uns nicht, dass das System die Datei nicht finden kann, die Nachricht sagt uns, dass das System den Schlüssel in der Datei nicht finden kann. Das stellt sicher, dass Sie eine zweite Datei mit dem Namen
org.gtk.Settings.FileChooser.gschema.xml
irgendwo in Ihrem System haben und diese Datei nicht den gewünschten Schlüssel enthält.Um dieses Problem zu umgehen, würde ich vorschlagen, dass Sie nach Dateien mit dem Namen suchen.
org.gtk.Settings.FileChooser.gschema.xml
Ich bin sicher, dass Sie mehr als nur eine finden werden. Überprüfen Sie den Inhalt dieser Datei an einem anderen Speicherort, wenn sie den gewünschten Schlüssel enthält. Dies ist jedoch nicht der Fall.Kopieren von
Sie können den Wert von
XDG_DATA_DIRS
withecho $XDG_DATA_DIRS
in terminal überprüfen , um einen Hinweis darauf zu erhalten, wo Sie nach Dateien suchen müssen.Ich konnte nicht herausfinden, wie der Wert für festgelegt werden
XDG_DATA_DIRS
soll. Der Wert wird beim Start durch ein Bash-Skript festgelegt, aber die gefundenen Informationen schienen veraltet zu sein.Ihr Problem könnte mit diesem Fehler zusammenhängen. Google führt mich zu diesem Link, während ich im Internet nach Ihrem Problem suche.
quelle
org.gtk.Settings.FileChooser.gschema.xml
XDG_DATA_DIRS
. WennXDG_DATA_DIRS
der Wert falsch ist, sucht das System an einem anderen Speicherort nach der Datei und findet dort möglicherweise eine Datei mit demselben Namen, aber diese Datei enthält den Schlüssel nicht. Dies könnte hier wirklich der Fall sein und ist es wert, überprüft zu werden./usr/local/share/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml
Schema installiert . Durch Deinstallieren dieser Bibliothek wurde das Problem behoben. In der Tat/usr/local/share
geht/usr/share
auf meineXDG_DATA_DIRS
.Nur ein kleiner Hintergrund:
glib-compile-schemas kompiliert alle GSettings-XML-Schemadateien
DIRECTORY
in eine Binärdatei mit dem Namengschemas.compiled
, der von GSettings verwendet werden kann. Die XML-Schemadateien müssen die Dateinamenerweiterung haben.gschema.xml
. Eine ausführliche Beschreibung des XML-Dateiformats finden Sie in der GSettings-Dokumentation.Zur Laufzeit sucht GSettings in den
glib-2.0/schemas
Unterverzeichnissen aller in derXDG_DATA_DIRS
Umgebungsvariablen angegebenen Verzeichnisse nach Schemas . Der übliche Speicherort für die Installation von Schemadateien ist/usr/share/glib-2.0/schemas
.Zusätzlich zu Schemadateien liest glib-compile-schemas 'Vendor Override'-Dateien. Hierbei handelt es sich um Schlüsseldateien, mit denen Standardwerte für Schlüssel in den Schemas überschrieben werden können. Die Gruppennamen in den Schlüsseldateien sind die Schema-ID, und die Werte werden in serialisierter GVariant-Form geschrieben. Herstellerüberschreibungsdateien müssen die Dateinamenerweiterung haben
.gschema.override
.Per Konvention Anbieter überschreiben Dateien beginnen mit
nn_
demnn
eine Zahl von 00 bis 99 höhere nummerierte Dateien haben eine höhere Priorität (zB: wenn die gleiche Überschreibung in einer Datei aus 10 nummeriert und dann wieder in einer Datei nummeriert 20, die Überschreibung von 20 wird Vorrang haben).Wenn ich Ihr Setup richtig lese, haben Sie Ihre
.xml
Dateien in:und nicht in:
wo sie erwartet werden.
Wenn ich es falsch gelesen habe, lass es mich wissen und ich werde diese Antwort löschen. Ich benutze FireFox nicht und konnte die Antwort daher nicht wie gewohnt testen.
quelle