Co to jest dconf, jaka jest jego funkcja i jak go używać?


77

Mark Shuttleworth napisał niedawno na blogu o decyzji o włączeniu bibliotek Qt do wydania 11.10, kontynuując Jono Bacon. Mark stwierdza, że ​​największym wyzwaniem dla integracji aplikacji napisanych w Qt z większym systemem Ubuntu jest obecna niezgodność Qt z dconf.

Co to jest dconf i jaką rolę odgrywa w Ubuntu?


Odpowiedzi:


87

Wprowadzenie

Podczas gdy inne odpowiedzi na tej stronie omawiają gconfi dconfrazem, po prostu skoncentruję się na omawianiu narzędzi wiersza poleceń, takich jak gsettingsi GUI, dconf-editorktóre są używane do uzyskania dostępu do dconfbazy danych.

Na oficjalnej stronie GNOME zaznaczono, że

dconf to system konfiguracji niskiego poziomu. Jego głównym celem jest zapewnienie zaplecza GSettings na platformach, które nie mają jeszcze systemów pamięci konfiguracji.

dconf to prosty system konfiguracji oparty na kluczach. Klucze istnieją w nieustrukturyzowanej bazie danych (ale zamiarem jest, aby klucze logicznie należące do siebie były grupowane).

Posiadanie wszystkich kluczy w jednym kompaktowym formacie binarnym pozwala również uniknąć intensywnych problemów związanych z fragmentacją, jakie występują obecnie w podejściu do plików z katalogami plików xml.

dconf jest zoptymalizowany do odczytu. Zazwyczaj czytanie klucza z dconf wymaga zerowych wywołań systemowych i zerowych przełączników kontekstu. Zapisy są mniej zoptymalizowane - przechodzą przez magistralę i są obsługiwane przez „pisarza” - usługę DBus - w zwykły sposób.

Używanie gsettingsdo przeglądania i zmiany ustawień

Gdy się dowiesz gsettings, może to być tak proste, jak GUI dconf-editor. Opcje można wyświetlić, wchodząc man gsettingslub przechodząc do stron internetowych Ubuntu online .

UWAGA: Ponieważ w każdym systemie są zainstalowane różne programy, być może będziesz musiał zastąpić określone elementy wybranymi przez siebie innymi podczas eksperymentowania, ponieważ używam XUbuntu XFce z dość dużą liczbą programów GNOME.

Aby wyświetlić listę wszystkich dostępnych schematów, wprowadź

gsettings list-schemas

Aby uwzględnić wszystkie klucze, wprowadź

gsettings list-recursively

Jednakże , jest to zwykle łatwiej określić, co chcesz z, na przykładach,

gsettings list-schemas | grep -i shotwell

To zwraca długą listę; Skróciłem to do:

org.yorba.shotwell
org.yorba.shotwell.preferences.ui
org.yorba.shotwell.preferences.slideshow
org.yorba.shotwell.plugins.enable-state
org.yorba.shotwell.printing
org.yorba.shotwell.preferences.editing
org.yorba.shotwell.preferences.files

Teraz, gdy znajdziesz interesujący Cię schemat, wypisz klucze za pomocą

gsettings list-keys org.yorba.shotwell.preferences.ui

Zwraca listę (ponownie ją skróciłem):

background-color
display-basic-properties
display-extended-properties
display-photo-ratings
display-photo-tags
display-photo-titles
event-photos-sort-ascending
event-photos-sort-by

Wybierz jeden i zobacz, jaka jest aktualna wartość

gsettings get org.yorba.shotwell.preferences.ui display-photo-tags

Zwraca wartość true, więc aby ją odwrócić, użyj

gsettings set org.yorba.shotwell.preferences.ui display-photo-tags false

Są to trywialne przykłady, ale pokazują w zasadzie, w jaki sposób klucze i wartości są identyfikowane i zmieniane za pomocą gsettings.

Korzystanie z edytora dconf do zmiany ustawień

Program GUI dconf-editorjest instalowany z pakietem dconf-tools , klikając tutaj lub uruchamiając

sudo apt-get install dconf-tools

Następnie uruchom go wpisując w terminalu lub w menu szybkiego uruchamiania, dconf-editor.

Jak widać na zrzucie ekranu, wszystkie różne schematy można rozwinąć po lewej stronie i wybrać odpowiedni klawisz. Przejście do żądanej wartości (w tym przypadku gnome-mplayerpreferencji) jest bardzo proste . Możesz kliknąć pole wyboru, aby aktywować wartość lub dodać wartość liczbową do jednego z pozostałych pól. Możesz także wyszukiwać w edytorze dconf za pomocą Ctrl+ Fskrótu klawiaturowego.

wprowadź opis zdjęcia tutaj

Możesz także dodać kolejny log do powiedzenia log-viewer, dodając ścieżkę w postaci ['/var/log/auth.log', var .... '] na zrzucie ekranu poniżej.

wprowadź opis zdjęcia tutaj

Wniosek

Istnieje wiele innych przydatnych sposobów, które możesz modyfikować ustawienia zarówno gsettingsa dconf-editori są proste w użyciu. Warto je przejrzeć, aby sprawdzić, czy istnieją opcje, których nie ma w preferencjach programów, ponieważ możesz dostosować swój program tak, jak chcesz. Jak pokazała ostatnio fossfreedom w tym pytaniu

umiejętność korzystania gsettingslub dconf-editorniezwykle cenna. Zobacz też:


5
Ponieważ programy gsettingsi dconf-editordziała zarówno na dconfbazie, to dlaczego nie wykazują one te same informacje? gsetting12.04 pokazuje wartości dla schematu com.canonical.Unity.Launcheri klucza, favoritesale dconf-editornawet nie oferuje com.canonical.Unitycałego schematu lub klucza.
AH

@AH: dobre pytanie. Poprosiłem go tutaj: askubuntu.com/q/243409/2355
Flimm

@AH Przykro mi, że zapomniałem odpowiedzieć na twój komentarz: Nie mogę komentować Unity, ponieważ jestem na Xubuntu, ale Flimm zadał osobne pytanie, na które powinny znaleźć dobre odpowiedzi.

4
Ale co do cholery sprawia, że ​​dconf jest niezgodny z Qt, zestawem narzędzi GUI?
Salman von Abbas,

Na RHEL / CentOS użyj, yum install dconf-editoraby zainstalować narzędzie GUI.
Mark Edington

26

Dla tych, którzy pochodzą z systemu Windows, którzy chcą prostej odpowiedzi, dconf jest gnomem odpowiednikiem rejestru systemu Windows ... wielkim drzewem binarnym, w którym dowolny program może przechowywać i udostępniać swoją konfigurację.

Najpierw migrowali z tradycyjnych konfiguracji uniksowych (jeden plik tekstowy dla każdej aplikacji, każdy z własnym formatem) do standardowego drzewa plików XML, zarządzanego przez gconf. W ostatnim czasie, ponieważ prawie nikt nie edytował bezpośrednio tych plików XML, a także problemy z wydajnością odczytu i analizowania WIELU plików, migrowano do formatu binarnego, migrując z gconf do dconf.

W przeciwieństwie do rejestru systemu Windows, dconf powinien mieć na liście wszystkie wpisy konfiguracji, nawet jeśli są ustawione na wartości domyślne. Więc nie ma żadnych ukrytych wpisów, możesz łatwo zmienić lub zresetować, a następnie przywrócić ustawienia domyślne.


10

dconf nie jest specyficzny dla Ubuntu, jest to technologia GNOME używana do przechowywania ustawień aplikacji. Aby uzyskać więcej informacji, przeczytaj http://live.gnome.org/dconf


Jaki jest związek między dconf i gconf?
psusi

10
dconf jest zamiennikiem GNOME3 dla gconf, który nie był utrzymywany przez pewien czas. Oczekuje się również, że dconf przyniesie poprawę wydajności w porównaniu z gconf (istotnym podczas uruchamiania aplikacji).
João Pinto,

1
Pytanie w psusi komentarzu „s powyżej jest częściowo odpowiedział w odpowiedzi na pytanie« Dlaczego spór o dconf i gconf? ». Jestem pewien, że psusi jest tego świadomy, skomentowawszy to pytanie, ale w przypadku, gdyby ktokolwiek chciał dowiedzieć się więcej, tak jest.
Firefeather
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.