Nơi lưu trữ cài đặt người dùng cho một ứng dụng?


12

Nếu tôi muốn ứng dụng của mình lưu trữ một vài cài đặt, vẫn tồn tại khi đóng ứng dụng, vậy tôi nên lưu trữ chúng ở đâu?

Tôi không nói bất cứ điều gì phức tạp: hai booleans và một chuỗi (mặc dù trong tương lai tôi có thể muốn lưu trữ các cài đặt phức tạp hơn)

Tôi đã nghe nói về gconf, dconf, gsinstall, v.v. Phương pháp "ưa thích" là gì? Tốt nhất là một cái tốt và dễ dàng trong Python.


Câu trả lời:


9

gconfkhông được dùng nữa, vì vậy đối với một dự án mới, tôi sẽ không sử dụng nó. dconflà một phụ trợ để lưu trữ các cài đặt, vì là một nhà phát triển ứng dụng, thông thường bạn không cần phải bận tâm đến nó.

Những gì bạn dường như cần là gsettings, một API cấp cao ( tài liệu API cho C ) để lưu trữ / truy xuất cài đặt mà không bận tâm đến cách thức / nơi chúng thực sự được lưu trữ. gsettingslà một phần của gio, đây là một trong những gói cốt lõi của gnome (như glibgobject). Bài đăng trên blog này giới thiệu ngắn về cách sử dụng nó với Python.

Nếu bạn không muốn bất kỳ sự phụ thuộc nào vào gio(ví dụ: bạn không phát triển ứng dụng Gnome) và muốn lưu trữ các tệp cấu hình đơn giản, tôi khuyên bạn nên sử dụng $HOME/.configthư mục (hoặc bất kỳ thư mục nào được xác định bởi $XDG_CONFIG_DIRS) thay vì $HOME/.your_appnamephù hợp với thông số freedesktop .


Có vẻ như liên kết của bạn đến bài viết trên blog đã chết. Bạn có cơ hội nào khác không?
Seth

@ Thật không may là bài đăng blog tôi đã liên kết đến dường như không còn có sẵn nữa. Tôi đã thay thế liên kết bằng một liên kết đến một bài đăng blog khác cũng là một điểm khởi đầu tốt.
Marcel Promotionberg

10

Ứng dụng chạy hệ thống rộng

nơi thích hợp để lưu trữ cài đặt sẽ là:

/etc/[application]/

trong đó một thư mục con là tùy chọn.


Ứng dụng chạy ở chế độ cho mỗi người dùng

cài đặt nên được lưu trong HOME người dùng, tốt nhất là trong một thư mục ẩn:

/home/<user>/<.application>/

Xem thêm FHS Debian .


Các ứng dụng đang chạy trong X-Desktop

Các ứng dụng cho X-Desktop (ví dụ: Gnome, KDE, Unity, Xfce) nên tham khảo Đặc tả thư mục cơ sở XDG nơi các vị trí tệp sau được xác định trong các biến cục bộ:

  • $XDG_DATA_HOMEđịnh nghĩa thư mục cơ sở liên quan đến các tệp dữ liệu cụ thể của người dùng sẽ được lưu trữ. Nếu $ XDG_DATA_HOME không được đặt hoặc trống, nên sử dụng mặc định bằng $ HOME / .local / share.

  • $XDG_CONFIG_HOMEđịnh nghĩa thư mục cơ sở liên quan đến các tệp cấu hình cụ thể của người dùng sẽ được lưu trữ. Nếu $ XDG_CONFIG_HOME không được đặt hoặc trống, nên sử dụng mặc định bằng $ HOME / .config.

  • $XDG_DATA_DIRSđịnh nghĩa tập hợp các thư mục cơ sở theo thứ tự ưu tiên để tìm kiếm các tệp dữ liệu ngoài thư mục cơ sở $ XDG_DATA_HOME. Các thư mục trong $ XDG_DATA_DIRS nên được phân tách bằng dấu hai chấm ':'.

  • If $XDG_DATA_DIRS không được đặt hoặc trống, nên sử dụng giá trị bằng / usr / local / share /: / usr / share /.

  • $XDG_CONFIG_DIRSđịnh nghĩa tập hợp các thư mục cơ sở theo thứ tự ưu tiên để tìm kiếm các tệp cấu hình bên cạnh thư mục cơ sở $ XDG_CONFIG_HOME. Các thư mục trong $ XDG_CONFIG_DIRS phải được phân tách bằng dấu hai chấm ':'. Nếu $ XDG_CONFIG_DIRS không được đặt hoặc trống, nên sử dụng giá trị bằng / etc / xdg.


Không, họ phải ở trong /home/<user>/.config/application/
Ẩn danh

@ Đồng nghĩa: Thật tuyệt khi có một tài liệu tham khảo cho việc này. Chính sách Debian hiện tại yêu cầu FHS 2.3 ngoại trừ các ứng dụng được khuyến nghị lưu trữ cài đặt người dùng trong tệp chấm (hoặc thư mục) trong HOME của người dùng.
Takkat

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.