Gconf, Dconf, Gsinstall và mối quan hệ giữa chúng


65

Tôi đang cố gắng hiểu cách thức hoạt động của Gconf, Dconf và Gsinstall và mối quan hệ giữa chúng.

Tất cả những gì tôi biết là:

  • Gconf - Cơ sở dữ liệu dựa trên XML (hệ thống phụ trợ). Người lớn tuổi hơn.
  • Dconf - Cơ sở dữ liệu dựa trên BLOB (hệ thống phụ trợ). Cái mới hơn.
  • Gsinstall - Công cụ CLI để chỉnh sửa cài đặt. Có vẻ như nó chỉ hoạt động với Dconf (mặc dù tôi đã thấy ở đâu đó rằng nó có thể hoạt động với Gconf).

Tôi biết rằng đối với Gconf, có GUI - trình soạn thảo Gconf và đối với Dconf - Trình biên tập Dconf.

Vì thế:

  1. Hệ thống phụ trợ nào thường được sử dụng hơn - Dconf hoặc Gconf?
  2. Gsinstall hoạt động với cả hai? Và tại sao nó không hiển thị tất cả các lược đồ Dconf?
  3. Dconf lưu dữ liệu của nó ở đâu?

Tôi sẽ đặc biệt quan tâm đến việc cài đặt nào được xử lý bởi công cụ nào (dconf hoặc gsinstall) và tại sao có sự khác biệt?
Johsm

Câu trả lời:


39

GConf đã lỗi thời. Đó là API và hệ thống cấu hình Gnome 2.x cũ hơn và đã được thay thế bởi DConf / GSinstall trong các phiên bản mới hơn. Tuy nhiên, một số ứng dụng vẫn sử dụng nó.

GSinstall là một triển khai GLib của DConf, lưu trữ dữ liệu của nó trong cơ sở dữ liệu nhị phân.

Công gsettingscụ dòng lệnh chỉ đơn giản là một công cụ để truy cập hoặc sửa đổi các cài đặt thông qua API GSinstall, giống như cách mà gconftoolcông cụ dòng lệnh cũ hơn dành cho GConf.


1
Có phải GSinstall cũng hoạt động với GConf không?
idgar

3
Không, GSinstall là một triển khai của thông số DConf. Công cụ dòng lệnh không hoạt động với gconf. Tuy nhiên, có một số lớp tương thích hiện đang được sử dụng trên Ubuntu, trong đó việc thay đổi cài đặt trong gsinstall hoặc gconf, sẽ dẫn đến thay đổi được lan truyền sang lớp khác. Điều này không phổ biến mặc dù, và không phải là một cái gì đó để dựa vào.
dobey

một điều nữa, tôi đã thấy ở đâu đó rằng GSinstall hoạt động với các tệp cấu hình. Có cái gì về nó? và tại sao GSinstall không hiển thị các lược đồ giống như trình soạn thảo DConf?
idgar

1
Phần thú vị cần biết là cài đặt nào được quản lý bởi công cụ nào? Các khóa có mặt khi sử dụng dconf hoặc trình soạn thảo dconf khác với các khóa có thể truy cập bằng gsinstall, ví dụ: có một khóa / com / canonical / unity / always-show-menu có thể truy cập qua dconf nhưng không có khóa tương đương có thể truy cập qua gsinstall trong Ubuntu 15.04.
Johsm

1
@dobey: cảm ơn bạn đã giúp với điều này. Điều tôi thực sự theo đuổi là mặc dù: làm thế nào để ánh xạ giữa khóa tôi phải sử dụng trong dconf và khóa tôi phải sử dụng với gsinstall hoạt động? Nếu tôi biết một cái, có cách nào để tìm cái kia không? Trong trường hợp cụ thể của tôi, tôi đã được đưa ra / com / canonical / unity / always-show-menu - bây giờ làm cách nào để tìm khóa thích hợp cho gsinstall? Nếu cả hai sử dụng cùng một dữ liệu cơ bản, thì không nên có một ánh xạ logic? Hay tôi vẫn còn thiếu một cái gì đó?
Johsm

43

Dconf là một kho lưu trữ dữ liệu được thiết kế để lưu trữ cấu hình. Nó là sự thay thế cho Gconf , được sử dụng cho cùng một mục đích. Cuối cùng, không có chương trình nào nên phụ thuộc vào Gconf nữa.

Gsinstall là một thư viện phát triển được sử dụng để đọc và ghi vào phần cuối của cửa hàng cấu hình. Trên Linux, nó sử dụng Dconf, nhưng trên Windows, nó sử dụng sổ đăng ký và trên OS X, nó sử dụng kho dữ liệu gốc.

Các nhà phát triển ứng dụng và người dùng cuối được khuyến nghị sử dụng Gsinstall, không phải Dconf trực tiếp.

Xem thêm:

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.