2010-09-16 42 views
5

Đến từ nền Windows tại đây.Đường dẫn mã hóa cứng trong Linux

Có thực tiễn chấp nhận được đối với các ứng dụng GUI Linux để lưu trữ các tệp dữ liệu của chúng (không phải người dùng cụ thể) tại các vị trí được mã hóa cứng (e. G./Etc/myapp/stuff) không? Tôi không thể tìm thấy bất kỳ syscalls nào sẽ trả về thư mục ưa thích cho dữ liệu ứng dụng. Có một quy ước ngoài kia về những gì xảy ra ở đâu không?

Trả lời

4

Nói chung, có một quy ước. Trên hầu hết các hệ thống Linux, tệp cấu hình ứng dụng là thường là nằm ở /etc/appname/. Bạn sẽ muốn tham khảo LSB (Linux Standard Base)Linux FHS (Filesystem Hierarchy Standard) để biết các đề xuất tương ứng của chúng.

Ngoài ra, nếu bạn đang nhắm mục tiêu ứng dụng của mình hướng tới một bản phân phối Linux cụ thể, nhà cung cấp distro đó có thể có các đề xuất cụ thể của riêng họ theo như bao bì và các công ước liên quan. Bạn sẽ muốn xem các trang dành cho nhà phát triển của nhà cung cấp distro của mình để biết thêm thông tin.

5

/opt/appname/stuff theo hệ thống bao bì các Linux Filesystem Hierarchy Standard

của phân phối của bạn có thể cung cấp nhiều cách để xử lý đường dẫn cài đặt thông thường. Bạn đang sử dụng phân phối nào?

+0

Phát triển trên Debian, nhưng tôi muốn nhắm mục tiêu nhiều bản phân phối dựa trên máy tính để bàn nhất có thể. Cảm ơn các liên kết. –

+0

Kiểm tra góc của nhà phát triển Debian: http://www.debian.org/devel/ – ssahmed555

+1

Tiêu chuẩn/opt/appname/stuff không phổ biến rộng rãi, AFAIK./etc/appname/phổ biến hơn nhiều. – leonbloy

0

Trong Linux, chỉ các dịch vụ cơ bản (mở tệp, thực hiện kết nối mạng và liên lạc nội bộ, v.v) được cung cấp dưới dạng cuộc gọi hệ thống. Phần còn lại được thực hiện bằng cách sử dụng thư viện.

Nếu bạn đang viết mã ứng dụng GUI, bạn nên xem tài liệu của bộ công cụ để xem liệu nó có cung cấp cơ chế quản lý mặc định hay không. Cả hai ví dụ KDEGnome đều có một ví dụ.

3

Tệp cấu hình cho các quy trình có đặc quyền nâng cao thường được lưu trữ trong /etc. Tệp dữ liệu cho các quy trình có đặc quyền nâng cao (Máy chủ web, Máy chủ thư, Máy chủ trò chuyện, v.v.) thường được lưu trữ trong /var. Và đó là nơi sự nhất quán kết thúc. Một số người nói rằng bạn bắt đầu với vị trí để lưu trữ chúng (/etc | /var) sau đó có một thư mục con appname cho ứng dụng của bạn, sau đó tiếp tục từ đó khi cần thiết.

Nếu bạn không phải là daemon hệ thống có đặc quyền nâng cao, lựa chọn duy nhất duy nhất của bạn là thư mục dấu chấm trong thư mục chính của người dùng khởi chạy. Tôi nghĩ rằng các tiêu chuẩn máy tính để bàn miễn phí (XDG) chỉ định ~/.config cho cấu hình cho mỗi người dùng và ~/.cache để có thể thay thế dữ liệu tĩnh và/hoặc được tạo mà bạn cần lưu.

Nhìn vào Home Directory của tôi, một vài thư mục dot chính tôi có là: ~/.cache ~/.config ~/.irssi ~/.maildir ~/.mozilla ~/.kde ~/.ssh ~/.vnc

[sửa]
Trong khi không phải là một syscall, các Thông số kỹ thuật XDG tôi tham chiếu tại http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

2

Có một số quy ước nhất định.

  • System-rộng, có thể đọc/chỉnh sửa (text-based) file cấu hình đi trong /etc/appname/.
  • Tệp dữ liệu nhị phân trên toàn hệ thống, mỗi máy thay đổi (ví dụ: cơ sở dữ liệu nhị phân) đi theo số /var/*/appname/ - /var/cache/appname/, /var/spool/appname//var/lib/appname/ là phổ biến nhất.
  • Tệp dữ liệu nhị phân trên toàn hệ thống có thể được chia sẻ giữa các máy (ví dụ: đồ họa và tệp âm thanh) đi theo số /usr/share/appname/.
+0

Gotta yêu những quy ước đó. Chọn một trong những bạn thích nhất! –

1

Đường dẫn đầy đủ mà các ứng dụng Unix/Linux/GNU sử dụng để lưu trữ tệp cấu hình và dữ liệu khác thường được đặt khi ứng dụng được định cấu hình trước khi biên dịch. Những đường dẫn này sau đó được mã hóa cứng vào nhị phân đã biên dịch (bạn có thể xem ví dụ về điều này bằng cách chạy strings(1) trên một số tệp thi hành hiện có).

Tức là, các loại đường dẫn này có thể định cấu hình theo thời gian, không thể định cấu hình theo thời gian chạy theo mặc định. Nhiều ứng dụng sẽ hỗ trợ tùy chọn dòng lệnh để chỉ định nơi tệp cấu hình và tệp cấu hình đó thường sẽ chứa đường dẫn cho các tài nguyên ứng dụng khác. Điều này cho phép ứng dụng chạy với cấu hình tối thiểu (đường dẫn tích hợp) nhưng cũng cho phép một trang web tùy chỉnh hoàn toàn các đường dẫn.

Các vấn đề liên quan