Dconf nedir, işlevi nedir ve nasıl kullanırım?


78

Mark Shuttleworth geçtiğimiz günlerde , Jono Bacon'un bir takipçisi olarak 11.10 sürümüne Qt kütüphanelerini dahil etme kararı hakkında blog yazdı . Mark, Qt ile yazılmış uygulamaları daha büyük Ubuntu sistemine entegre etmenin en büyük zorluğunun Qt'in dconf ile olan uyumsuzluğu olduğunu belirtiyor.

Dconf nedir ve Ubuntu'da oynadığı rol nedir?


Yanıtlar:


88

Giriş

Bu sitedeki diğer cevapların tartıştığı gconfve dconfbirlikte belirttiği gibi, veritabanına erişmek için kullanılan gsettingsve gui gibi komut satırı araçlarını tartışmaya yoğunlaşacağım .dconf-editordconf

At GNOME resmi sitede bu belirtilmektedir

dconf, düşük seviye bir konfigürasyon sistemidir. Temel amacı, halihazırda konfigürasyon depolama sistemlerine sahip olmayan platformlarda GSettings'e arka uç sağlamaktır.

dconf basit bir anahtar tabanlı konfigürasyon sistemidir. Anahtarlar yapılandırılmamış bir veritabanında bulunur (ancak mantıksal olarak birbirine ait anahtarların birlikte gruplandırılması amaçlanmıştır).

Tüm anahtarların tek bir kompakt ikili biçimde olması aynı zamanda, xml dosya dosyalarının ağacı yaklaşımı tarafından günümüzde karşılaşılan yoğun parçalanma problemlerini de önler.

dconf okumalar için optimize edilmiştir. Genellikle, bir anahtarı dconf'tan okumak, sıfır sistem çağrısını ve sıfır bağlam anahtarını içerir. Yazılar daha az optimize edilmiştir - otobüsü geçerler ve sıradan bir şekilde "yazar" - bir DBus servisi - tarafından yönetilirler.

gsettingsAyarları görüntülemek ve değiştirmek için kullanma

Biri bir kere gsettingsöğrenince, gui kadar kolay olabilir dconf-editor. Seçenekler çevrimiçi olarak Ubuntu man sayfalarına girilerek man gsettingsveya bu sayfalara gidilerek listelenebilir .

NOT: Herkesin sisteminde farklı programlar kurulu olduğu için, XUbuntu XFce'i oldukça fazla GNOME programı ile kullandığım için, kendinize deney yaparken seçtiğim belirli öğeleri yerine koymak zorunda kalabilirsiniz.

Kullanılabilir tüm şemaları listelemek için

gsettings list-schemas

Tüm tuşları da dahil etmek için

gsettings list-recursively

Ancak , ne istediğinizi belirtmek genellikle daha kolaydır, örneğin,

gsettings list-schemas | grep -i shotwell

Bu uzun bir liste döndürür; Onu kısaltdım:

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

Şimdi ilgilendiğiniz şemayı bulduğunuzda, tuşları

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

Bu bir liste döndürür (yine kısaltdım):

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

Birini seçin ve mevcut değerin ne olduğunu görün

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

Bu true değerini döndürür, tersine çevirmek için kullan

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

Bunlar önemsiz örneklerdir, ancak temelde anahtarların ve değerlerin nasıl tanımlanıp değiştirildiğini gösterir gsettings.

Ayarları değiştirmek için dconf-editor'ü kullanma

GUI programı, buraya tıklayarak veya çalıştırarak dconf-tools paketi dconf-editorile birlikte yüklenir.

sudo apt-get install dconf-tools

Ardından terminale veya hızlı başlatma menüsüne girerek çalıştırın dconf-editor,.

Ekran görüntüsünde de görebileceğiniz gibi, tüm çeşitli şemalar sol tarafta genişletilebilir ve seçilen uygun anahtar. İstediğiniz değere gitmek çok basittir (bu durumda gnome-mplayertercihler). Değeri etkinleştirmek için onay kutusunu tıklayabilir veya diğer kutulardan birine sayısal bir değer ekleyebilirsiniz. Ayrıca dconf editöründe Ctrl+ Fklavye kısayoluyla da arama yapabilirsiniz .

görüntü tanımını buraya girin

Ayrıca log-vieweraşağıdaki ekran görüntüsünde ['/var/log/auth.log', var .... '] biçiminde bir yol ekleyerek başka bir günlük ekleyebilirsiniz .

görüntü tanımını buraya girin

Sonuç

Orada hem ayarları çimdik diğer birçok kullanışlı yollar gsettingsve dconf-editoronlar kullanımı da çok basittir. Programınızı istediğiniz gibi özelleştirebildiğiniz için, programların tercihlerinde bulunmayan seçeneklerin olup olmadığını görmek için onları araştırmaya değer. Son zamanlarda fosil sıkıntısının gösterdiği gibi

nasıl kullanılacağını bilmek gsettingsya dconf-editorda son derece değerlidir. Ayrıca bakınız:


5
Programlar gsettingsve dconf-editorher ikisi de dconfveritabanında çalıştığı için neden aynı bilgileri göstermiyorlar? gsetting12.04'te şema com.canonical.Unity.Launcherve anahtar için değerleri gösterir , favoritesancak tam şema veya anahtarı dconf-editorbile önermez com.canonical.Unity.
AH,

@AH: iyi bir soru. Burada sordum: askubuntu.com/q/243409/2355
Flimm

@AH Yorumunuzu cevaplamayı unuttuğum için üzgünüm: Birlik hakkında yorum yapamam çünkü Xubuntu'dayım, ancak Flimm iyi bir yanıt alması gereken ayrı bir soru sordu.

4
Ama ne dconf bir GUI araç seti olan Qt ile uyumsuz kılan şey nedir?
Salman von Abbas,

RHEL / CentOS'ta yum install dconf-editorGUI aracını yüklemek için kullanın.
Mark Edington,

26

Basit bir cevap isteyen pencerelerden gelenler için dconf, Windows kayıt defterine eşdeğer bir gnome'dur ... herhangi bir programın konfigürasyonunu saklayabileceği ve paylaşabileceği büyük bir ikili ağaç.

Önce geleneksel unix yapılandırmalarından (her uygulama için birer metin dosyası, her biri kendi formatına sahip) gconf tarafından yönetilen standart bir XML dosyaları ağacına geçtiler. Son zamanlarda, neredeyse hiç kimse bu XML dosyalarını doğrudan düzenlemediği ve MANY dosyalarını okuma ve ayrıştırmadaki performans sorunları nedeniyle, gconf'dan dconf'ye geçiş yaparak ikili bir formata geçtiler.

Windows kayıt defterinden farklı olarak, dconf, varsayılan değerlere ayarlanmış olsalar bile, tüm yapılandırma girişlerinde listelenmelidir. Böylece hiçbir gizli giriş yoktur, daha sonra kolaylıkla değiştirebilir veya sıfırlayabilirsiniz.


10

dconf Ubuntu'ya özgü değildir, uygulama ayarlarını saklamak için kullanılan GNOME teknolojisidir. Daha fazla ayrıntı için lütfen http://live.gnome.org/dconf adresini okuyun.


Dconf ve gconf arasındaki ilişki nedir?
psusi

10
dconf, bir süredir korunmayan gconf için GNOME3 yerine geçer. dconf'un ayrıca gconf'a göre performans iyileştirmeleri getirmesi bekleniyor (uygulamaların başlatılmasıyla ilgili).
João Pinto

1
Soru psusi un yorumunu yukarıda kısmen sorusuna 'cevaplar cevaplanır Neden dconf ve gconf? Hakkında tartışma '. Eminim psusi bunun farkında olduğunu biliyor, soru hakkında yorumda bulunuyor, ancak başka birinin daha fazla şey bilmek istemesi durumunda, işte orada.
Firefeather
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.