dconf คืออะไรฟังก์ชันของมันคืออะไรและฉันจะใช้ได้อย่างไร


78

Mark Shuttleworth บล็อกเมื่อเร็ว ๆ นี้เกี่ยวกับการตัดสินใจที่จะรวมไลบรารี่ Qt ในรุ่น 11.10 พร้อมด้วยการติดตามผลจาก Jono Bacon Mark ระบุว่าความท้าทายที่ยิ่งใหญ่ที่สุดในการรวมแอพที่เขียนด้วย Qt เข้ากับระบบ Ubuntu ที่ใหญ่กว่านั้นคือความเข้ากันไม่ได้กับ dconf ปัจจุบันของ Qt

dconf คืออะไรและบทบาทของมันใน Ubuntu คืออะไร


การทำซ้ำที่เป็นไปได้ของฉันจะใช้โปรแกรมแก้ไข gconf ได้อย่างไร?
Pablo

คำตอบ:


88

บทนำ

ในขณะที่คำตอบอื่น ๆ ในเว็บไซต์นี้พูดคุยgconfและdconfร่วมกันฉันจะเน้นการพูดคุยเกี่ยวกับเครื่องมือบรรทัดคำสั่งเช่นgsettingsและ gui dconf-editorที่ใช้ในการเข้าถึงdconfฐานข้อมูล

ที่เว็บไซต์ทางการของ GNOMEมีการบันทึกไว้ว่า

dconf เป็นระบบการกำหนดค่าระดับต่ำ วัตถุประสงค์หลักคือเพื่อมอบแบ็กเอนด์ให้กับ GSettings บนแพลตฟอร์มที่ยังไม่มีระบบจัดเก็บข้อมูลการกำหนดค่า

dconf เป็นระบบการตั้งค่าพื้นฐานที่ใช้คีย์อย่างง่าย คีย์มีอยู่ในฐานข้อมูลที่ไม่มีโครงสร้าง (แต่มีไว้เพื่อให้คีย์ที่เป็นของอยู่ด้วยกันถูกจัดกลุ่มเข้าด้วยกัน)

การมีปุ่มทั้งหมดในรูปแบบไบนารีขนาดกะทัดรัดเพียงอย่างเดียวยังช่วยหลีกเลี่ยงปัญหาการกระจายตัวที่รุนแรงในขณะนี้ที่พบโดยวิธี tree-of-directory-of-xml-files

dconf เหมาะสำหรับการอ่าน โดยปกติแล้วการอ่านคีย์จาก dconf เกี่ยวข้องกับการเรียกใช้ระบบเป็นศูนย์และสวิตช์บริบทที่ไม่มีศูนย์ การเขียนมีการปรับให้เหมาะสมน้อยกว่า - พวกมันเข้าไปในรถบัสและจัดการโดย "นักเขียน" - บริการ DBus - ตามปกติ

ใช้gsettingsเพื่อดูและเปลี่ยนการตั้งค่า

ครั้งหนึ่งเคยได้รับรู้มันอาจจะเป็นเรื่องง่ายเหมือนกุยgsettings dconf-editorตัวเลือกที่สามารถแสดงโดยการป้อนman gsettingsหรือไปที่manpages อูบุนตูออนไลน์

หมายเหตุ:เนื่องจากระบบของทุกคนมีการติดตั้งโปรแกรมที่แตกต่างกันคุณอาจต้องแทนที่รายการเฉพาะที่ฉันเลือกสำหรับรายการที่แตกต่างกันเมื่อทำการทดลองด้วยตัวเองเนื่องจากฉันใช้ XUbuntu XFce ด้วยโปรแกรม GNOME จำนวนมาก

หากต้องการแสดงสกีมาที่มีทั้งหมดให้ป้อน

gsettings list-schemas

หากต้องการรวมปุ่มทั้งหมดให้ป้อน

gsettings list-recursively

อย่างไรก็ตามโดยปกติจะง่ายกว่าในการระบุสิ่งที่คุณต้องการด้วยเช่น

gsettings list-schemas | grep -i shotwell

ส่งคืนรายการแบบยาว ฉันได้ย่อให้เป็น:

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

ตอนนี้เมื่อคุณพบสคีมาที่คุณสนใจแล้วให้เขียนรายการคีย์ด้วย

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

นี่จะคืนรายการ (อีกฉันย่อให้สั้นลง):

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

เลือกหนึ่งรายการและดูว่ามีค่าปัจจุบันอยู่ที่ใด

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

สิ่งนี้จะคืนค่าของจริงดังนั้นเมื่อต้องการย้อนกลับให้ใช้

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

ตัวอย่างเหล่านี้เป็นเพียงเรื่องเล็กน้อยแต่แสดงให้เห็นว่ามีการระบุและเปลี่ยนแปลงคีย์และค่าต่างๆgsettingsอย่างไร

ใช้ dconf-editor เพื่อเปลี่ยนการตั้งค่า

โปรแกรม GUI dconf-editorถูกติดตั้งด้วยแพ็คเกจ dconf-toolsโดยคลิกที่นี่หรือโดยเรียกใช้

sudo apt-get install dconf-tools

จากนั้นเรียกใช้โดยการป้อนใน terminal dconf-editorหรือในเมนูเปิดตัวได้อย่างรวดเร็ว

ดังที่คุณเห็นในภาพหน้าจอสกีมาต่างๆสามารถขยายได้ทางด้านซ้ายมือและเลือกคีย์ที่เหมาะสม มันตรงไปตรงมามากเพื่อนำทางไปยังค่าที่คุณต้องการ (ในกรณีนี้การgnome-mplayerตั้งค่า) คุณสามารถคลิกกล่องกาเครื่องหมายเพื่อเปิดใช้งานค่าหรือเพิ่มค่าตัวเลขลงในหนึ่งในกล่องอื่น ๆ คุณยังสามารถค้นหาในโปรแกรมแก้ไข dconf ด้วยCtrl+ Fแป้นพิมพ์ลัด

ป้อนคำอธิบายรูปภาพที่นี่

นอกจากนี้คุณยังสามารถเพิ่มบันทึกอื่นได้log-viewerโดยเพิ่มเส้นทางในแบบฟอร์ม ['/var/log/auth.log', var .... '] ในภาพหน้าจอด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

ข้อสรุป

มีวิธีที่มีประโยชน์อื่น ๆ อีกมากมายที่คุณสามารถปรับแต่งการตั้งค่าได้ทั้งสองแบบgsettingsและdconf-editorตรงไปตรงมาเพื่อใช้ ควรดูผ่านเพื่อดูว่ามีตัวเลือกที่ไม่ได้อยู่ในค่ากำหนดของโปรแกรมหรือไม่เนื่องจากคุณอาจปรับแต่งโปรแกรมของคุณตามที่คุณต้องการ ในฐานะที่เป็น fossfreedom เพิ่งแสดงให้เห็นในคำถามนี้

รู้วิธีใช้gsettingsหรือdconf-editorมีค่าอย่างยิ่ง ดูสิ่งนี้ด้วย:


5
เนื่องจากโปรแกรมgsettingsและdconf-editorทำงานทั้งสองอย่างบนdconfฐานข้อมูลเหตุใดจึงไม่แสดงข้อมูลเดียวกัน gsettingใน 12.04 แสดงค่าสำหรับสคีมาcom.canonical.Unity.Launcherและคีย์favoritesแต่dconf-editorไม่ได้เสนอcom.canonical.Unityสคีมาแบบเต็มหรือคีย์เพียงอย่างเดียว
อา

@AH: คำถามที่ดี ฉันถามมันที่นี่: askubuntu.com/q/243409/2355
Flimm

@AH ฉันขอโทษที่ฉันลืมที่จะตอบความคิดเห็นของคุณ: ฉันไม่สามารถแสดงความคิดเห็นในความสามัคคีเพราะฉันอยู่ใน Xubuntu แต่ Flimm ได้ถามคำถามแยกต่างหากซึ่งควรได้รับคำตอบที่ดี

4
แต่อะไรในโลกที่ทำให้ dconfor เข้ากันไม่ได้กับ Qt ซึ่งเป็นชุดเครื่องมือ GUI
Salman von Abbas

บน RHEL / CentOS ใช้yum install dconf-editorเพื่อติดตั้งเครื่องมือ GUI
Mark Edington

26

สำหรับผู้ที่มาจาก windows ที่ต้องการคำตอบง่าย ๆ dconf นั้นเทียบเท่ากับ gnome registry ของ Windows ... ต้นไม้ไบนารีขนาดใหญ่ที่โปรแกรมใด ๆ สามารถจัดเก็บและแชร์การกำหนดค่าของมันได้

พวกเขาโอนย้ายครั้งแรกจากการกำหนดค่า unix แบบดั้งเดิม (ไฟล์ข้อความหนึ่งไฟล์สำหรับแต่ละแอปซึ่งมีรูปแบบของตัวเอง) ไปยังแผนผังมาตรฐานของไฟล์ XML ซึ่งจัดการโดย gconf ในครั้งล่าสุดเนื่องจากแทบจะไม่มีใครแก้ไขไฟล์ XML เหล่านั้นโดยตรงและปัญหาประสิทธิภาพของการอ่านและการแยกวิเคราะห์ไฟล์ MANY พวกเขาย้ายไปยังรูปแบบไบนารีโดยการย้ายจาก gconf ไปยัง dconf

ไม่เหมือนกับ windows registry, dconf ควรมีรายการ config ทั้งหมดที่ระบุไว้แม้ว่าจะถูกตั้งค่าเป็นค่าเริ่มต้นก็ตาม ดังนั้นจึงไม่มีรายการที่ซ่อนอยู่คุณสามารถเปลี่ยนแล้วหรือรีเซ็ตเป็นค่าเริ่มต้นได้อย่างง่ายดาย


10

dconf ไม่เฉพาะ Ubuntu เท่านั้นเป็นเทคโนโลยี GNOME ที่ใช้เก็บการตั้งค่าแอปพลิเคชัน สำหรับรายละเอียดเพิ่มเติมโปรดอ่าน http://live.gnome.org/dconf


ความสัมพันธ์ระหว่าง dconf และ gconf คืออะไร?
psusi

10
dconf คือการแทนที่ GNOME3 สำหรับ gconf ซึ่งยังไม่ได้รับการบำรุงรักษาเป็นระยะเวลาหนึ่ง dconf คาดว่าจะนำการปรับปรุงประสิทธิภาพมากกว่า gconf (เกี่ยวข้องกับการเริ่มต้นแอปพลิเคชัน)
João Pinto

1
คำถามในความคิดเห็นของpsusiด้านบนได้รับคำตอบบางส่วนในคำตอบของคำถามที่ว่า " ทำไมข้อโต้แย้งเกี่ยวกับ dconf และ gconf " ฉันแน่ใจว่าpsusiตระหนักถึงมันและได้แสดงความคิดเห็นกับคำถามนี้ แต่ในกรณีที่คนอื่นต้องการทราบข้อมูลเพิ่มเติม
ผจญเพลิง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.