Gconf, Dconf, Gsettings ve aralarındaki ilişki


65

Gconf, Dconf ve Gsettings'in nasıl çalıştığını ve aralarındaki ilişkinin ne olduğunu anlamaya çalışıyorum.

Tek bildiğim:

  • Gconf - XML ​​tabanlı veritabanı (arka uç sistemi). Büyük olanı.
  • Dconf - BLOB tabanlı veritabanı (arka uç sistemi). Yeni olan
  • Gsettings - Ayarları düzenlemek için CLI aracı. Sadece Dconf ile çalışıyor gibi gözüküyor (Gconf ile çalışabileceği bir yerlerde görmeme rağmen).

Gconf için bir GUI - Gconf editörü ve Dconf - Dconf editörü olduğunu biliyorum.

Yani:

  1. Hangi arka uç sistemi daha sık kullanılır - Dconf veya Gconf?
  2. Gsettings ikisiyle de çalışıyor mu? Ve neden tüm Dconf şemalarını göstermiyor?
  3. Dconf verilerini nereye kaydeder?

Hangi ayarların hangi araçla (dconf veya gsettings) işlendiğiyle ve neden farklılıklar olduğunu özellikle merak ediyorum.
Johsm

Yanıtlar:


38

GConf eskidir. Eski GNOME 2.x yapılandırma API ve sistemidir ve daha yeni sürümlerde DConf / GSettings ile değiştirilmiştir. Ancak, bazı uygulamalar hala onu kullanıyor.

GSettings, verilerini ikili bir veritabanında depolayan bir GLib DConf uygulamasıdır.

gsettingsKomut satırı aracı basitçe eski aynı şekilde, GSettings API üzerinden ayarlara erişmek veya değiştirmek için bir araçtır gconftoolkomut satırı aracı Gconf içindir.


1
GSettings, GConf ile de çalışır mı?
Idgar

3
Hayır, GSettings, DConf spec'in bir uygulamasıdır. Komut satırı aracı gconf ile çalışmıyor. Ancak, Ubuntu'da halen kullanılmakta olan bazı uyum katmanları vardır, burada gsettings veya gconf'ta bir ayarın değiştirilmesi, değişimin diğerine yayılmasına neden olur. Ancak bu yaygın değildir ve güvenilecek bir şey değildir.
dobey

Başka bir şey, GSettings'in konfigürasyon dosyalarıyla çalıştığını gördüm. bunun hakkında bir şey mi var? ve neden GSettings, DConf-editor ile aynı şemaları göstermiyor?
idgar

1
Bilmeniz gereken ilginç kısım hangi ayarların hangi araç tarafından yönetileceğidir? Dconf veya dconf-editor kullanırken mevcut olan anahtarlar, gsettings ile erişilebilenlerden farklıdır; örneğin, dconf ile erişilebilen bir anahtar / com / canonical / unity / always-show-menüler var, ancak gsettings yoluyla erişilebilen eşdeğer bir anahtar yok 15.04'te Ubuntu'da.
Johsm

1
@dobey: Bu konuda yardımcı olduğunuz için teşekkürler. Gerçekte peşinde olduğum şey şudur: dconf'ta kullanmam gereken anahtar ile gsettings ile kullanmam gereken anahtar arasındaki haritalama nasıl çalışır? Eğer birini tanıyorsam, diğerini bulmak için algoritmik bir yol var mı? Somut olarak bana / com / canonical / unity / always-show-menüler verildi - şimdi gsettings için uygun anahtarı nasıl bulabilirim? Her ikisi de aynı temel verileri kullanıyorsa, mantıklı bir eşleme yapılmamalıdır mı? Yoksa hala bir şey mi kaçırıyorum?
Johsm 23:15

43

Dconf , yapılandırmayı depolamak için tasarlanmış bir veri deposudur. Aynı amaç için kullanılan Gconf'un yerine geçmiştir . Sonunda hiçbir program artık Gconf'a bağlı olmamalıdır.

Gsettings , bir konfigürasyon deposunun arka ucunu okumak ve yazmak için kullanılan bir geliştirme kütüphanesidir. Linux'ta Dconf kullanıyor, ancak Windows'ta kayıt defterini kullanıyor ve OS X'te yerel bir veri deposu kullanıyor.

Uygulama geliştiricilerin ve son kullanıcıların doğrudan Dconf'u değil Gsettings'i kullanmaları önerilir.

Ayrıca bakınız:

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.