Dconf là gì, chức năng của nó là gì và làm thế nào để tôi sử dụng nó?


78

Mark Shuttleworth gần đây đã viết blog về quyết định đưa các thư viện Qt vào bản phát hành 11.10, với sự theo dõi từ Jono Bacon. Mark nói rằng thách thức lớn nhất đối với việc tích hợp các ứng dụng được viết bằng Qt vào hệ thống Ubuntu lớn hơn là sự không tương thích hiện tại của Qt với dconf.

Dconf là gì và vai trò của nó trong Ubuntu là gì?


Câu trả lời:


88

Giới thiệu

Khi các câu trả lời khác trên trang web này thảo luận gconfdconfcùng nhau, tôi sẽ chỉ tập trung thảo luận về các công cụ dòng lệnh như gsettingsvà gui dconf-editorđược sử dụng để truy cập dconfcơ sở dữ liệu.

Tại trang web chính thức của Gnome , lưu ý rằng

dconf là một hệ thống cấu hình cấp thấp. Mục đích chính của nó là cung cấp phần phụ trợ cho GSinstall trên các nền tảng chưa có hệ thống lưu trữ cấu hình.

dconf là một hệ thống cấu hình dựa trên khóa đơn giản. Các khóa tồn tại trong cơ sở dữ liệu phi cấu trúc (nhưng dự định các khóa thuộc về nhau được nhóm lại với nhau).

Có tất cả các khóa trong một định dạng nhị phân nhỏ gọn duy nhất cũng tránh được các vấn đề phân mảnh nghiêm trọng hiện đang gặp phải theo cách tiếp cận tập tin cây-thư mục-xml-tập tin.

dconf được tối ưu hóa để đọc. Thông thường, đọc một khóa từ dconf liên quan đến các cuộc gọi hệ thống bằng không và các chuyển đổi ngữ cảnh bằng không. Các bài viết ít được tối ưu hóa - chúng đi qua xe buýt và được xử lý bởi một "nhà văn" - một dịch vụ DBus - theo cách thông thường.

Sử dụng gsettingsđể xem và thay đổi cài đặt

Một khi người ta biết gsettingsnó có thể dễ dàng như gui dconf-editor. Các tùy chọn có thể được liệt kê bằng cách nhập man gsettingshoặc truy cập các trang web Ubuntu trực tuyến .

LƯU Ý: Vì hệ thống của mọi người đã cài đặt các chương trình khác nhau, bạn có thể phải thay thế các mục cụ thể tôi chọn cho các mục khác nhau khi tự mình thử nghiệm, vì tôi đang sử dụng XUbfox XFce với khá nhiều chương trình Gnome.

Để liệt kê tất cả các lược đồ có sẵn, nhập

gsettings list-schemas

Để bao gồm tất cả các phím, nhập

gsettings list-recursively

Tuy nhiên , thường dễ dàng hơn để xác định những gì bạn muốn với, ví dụ,

gsettings list-schemas | grep -i shotwell

Điều này trả về một danh sách dài; Tôi đã rút ngắn nó thành:

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

Bây giờ khi bạn đã tìm thấy lược đồ mà bạn quan tâm, hãy liệt kê các khóa với

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

Điều này trả về một danh sách (một lần nữa tôi đã rút ngắn nó):

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

Chọn một và xem giá trị hiện tại là gì

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

Điều này trả về giá trị là true, vì vậy để đảo ngược nó, hãy sử dụng

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

Đây là những ví dụ tầm thường , nhưng về cơ bản chỉ ra cách xác định và thay đổi các khóa và giá trị gsettings.

Sử dụng trình soạn thảo dconf để thay đổi cài đặt

Chương trình GUI, dconf-editorđược cài đặt với gói công cụ drc bằng cách nhấp vào đây hoặc bằng cách chạy

sudo apt-get install dconf-tools

Sau đó chạy nó bằng cách nhập vào thiết bị đầu cuối hoặc trong menu khởi động nhanh , dconf-editor.

Như bạn có thể thấy trong ảnh chụp màn hình, tất cả các lược đồ khác nhau có thể được mở rộng ở phía bên trái và phím thích hợp được chọn. Rất đơn giản để điều hướng đến giá trị bạn muốn (trong trường hợp này là các gnome-mplayertùy chọn). Bạn có thể nhấp vào hộp kiểm để kích hoạt giá trị hoặc thêm giá trị số vào một trong các hộp khác. Bạn cũng có thể tìm kiếm trong trình chỉnh sửa drc bằng phím tắt Ctrl+ F.

nhập mô tả hình ảnh ở đây

Bạn cũng có thể thêm một nhật ký khác log-viewerbằng cách thêm một đường dẫn ở dạng ['/var/log/auth.log', var .... '] trong ảnh chụp màn hình bên dưới.

nhập mô tả hình ảnh ở đây

Phần kết luận

Có rất nhiều cách hữu ích khác mà bạn có thể tinh chỉnh các thiết lập với cả hai gsettingsdconf-editorvà họ là đơn giản để sử dụng. Thật đáng để xem qua chúng để xem liệu có các tùy chọn không có trong tùy chọn của chương trình hay không, vì bạn có thể tùy chỉnh chương trình của mình theo cách bạn muốn. Như fossfreedom gần đây đã cho thấy trong câu hỏi này

biết cách sử dụng gsettingshoặc dconf-editorlà vô cùng quý giá. Xem thêm:


5
Vì các chương trình gsettingsdconf-editorhoạt động cả trên dconfcơ sở dữ liệu, tại sao chúng không hiển thị cùng một thông tin? gsettingtrên 12.04 hiển thị các giá trị cho lược đồ com.canonical.Unity.Launchervà khóa favoritesnhưng dconf-editorthậm chí không cung cấp com.canonical.Unityriêng cho lược đồ đầy đủ hoặc khóa.
AH

@AH: câu hỏi hay. Tôi đã hỏi nó ở đây: askubfox.com/q/243409/2355
Flimm

@AH Tôi xin lỗi vì tôi đã quên trả lời bình luận của bạn: Tôi không thể nhận xét về Unity vì tôi đang sử dụng Xubfox, nhưng Flimm đã hỏi một câu hỏi riêng để nhận được câu trả lời hay.

4
Nhưng điều gì trên trái đất làm cho dconf không tương thích với Qt, bộ công cụ GUI?
Salman von Abbas

Trên RHEL / CentOS sử dụng yum install dconf-editorđể cài đặt công cụ GUI.
Đánh dấu Edington

26

Đối với những người đến từ các cửa sổ muốn trả lời đơn giản, dconf là gnome tương đương với sổ đăng ký windows ... một cây nhị phân lớn, nơi bất kỳ chương trình nào cũng có thể lưu trữ và chia sẻ cấu hình của họ.

Đầu tiên, họ di chuyển từ các cấu hình unix truyền thống (một tệp văn bản cho mỗi ứng dụng, mỗi tệp có định dạng riêng) sang một cây tệp XML tiêu chuẩn, được quản lý bởi gconf. Trong thời gian gần đây, vì hầu như không ai chỉnh sửa trực tiếp các tệp XML đó và các vấn đề về hiệu suất của việc đọc và phân tích tệp NHIỀU, họ đã di chuyển sang định dạng nhị phân bằng cách di chuyển từ gconf sang dconf.

Không giống như Windows registry, dconf nên có tất cả các mục cấu hình được liệt kê, ngay cả khi chúng được đặt thành các giá trị mặc định. Vì vậy, không có mục ẩn, bạn có thể thay đổi sau đó hoặc đặt lại để mặc định dễ dàng.


10

dconf không phải là Ubuntu cụ thể, đó là công nghệ Gnome được sử dụng để lưu trữ cài đặt ứng dụng. Để biết thêm chi tiết xin vui lòng đọc http://live.gnome.org/dconf


Mối quan hệ giữa dconf và gconf là gì?
psusi

10
dconf là sự thay thế Gnome3 cho gconf không được duy trì trong một thời gian. dconf cũng được kỳ vọng sẽ mang lại những cải tiến về hiệu suất so với gconf (có liên quan đến khởi động ứng dụng).
João Pinto

1
Câu hỏi trong nhận xét của psusi ở trên được trả lời một phần trong các câu trả lời cho câu hỏi " Tại sao lại có tranh cãi về dconf và gconf? ". Tôi chắc chắn psusi nhận thức được nó, đã bình luận về câu hỏi, nhưng trong trường hợp bất cứ ai khác muốn biết thêm, nó có.
Cứu hỏa
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.