Tôi nên cài đặt thư mục nào trong Linux?


43

Tôi muốn cài đặt một chương trình trong Linux và chạy nó như một trình nền. (Đội Nói 3 trong trường hợp này, nhưng câu hỏi là chung chung về bản chất). Không có gói được cung cấp, chỉ có nhị phân tarred. Trường hợp trong cấu trúc thư mục tôi nên đặt một chương trình như vậy theo quy ước?

Trên web tôi thấy rằng / opt là dành cho "ứng dụng addon tùy chọn", trong khi / usr dành cho "chương trình người dùng". Tôi tìm thấy một hướng dẫn gợi ý / opt trong khi cái kia có đường / usr.

Vậy cái nào là "chính xác hơn"?


1
"Chính xác hơn" phụ thuộc vào phân phối của bạn. Bạn nên kiểm tra hướng dẫn phân phối của mình về nơi đặt phần mềm không được quản lý bởi người quản lý gói (thường /usr/local) HOẶC về cách tạo gói của riêng bạn cho phần mềm đó.
Leiaz

Cảm ơn bạn. Nhận xét của bạn đã giúp tôi tìm ra câu trả lời ( askubfox.com/questions/1148/ trên ). Vì vậy, tôi đoán nó nên / opt trong trường hợp của tôi (Sử dụng Linux Mint, dựa trên Ubuntu) và ứng dụng đang sử dụng một thư mục duy nhất. Nếu bạn chuyển đổi nhận xét của bạn thành một câu trả lời, tôi sẽ chấp nhận nó.
Eiver

Câu trả lời:


27

"Chính xác hơn" phụ thuộc vào phân phối của bạn. Bạn nên kiểm tra hướng dẫn phân phối của mình về nơi đặt phần mềm không được quản lý bởi người quản lý gói (thường /usr/local) HOẶC về cách tạo gói của riêng bạn cho phần mềm đó.

Như bạn đã nói TeamSpeak chỉ cần đặt mọi thứ vào một thư mục (và có thể không dễ dàng sắp xếp lại), có /opt/lẽ là tốt nhất.

(Nhưng, ví dụ, trong Archlinux, trình quản lý gói có thể cài đặt ở đó, vì vậy tôi vẫn tạo PKGBUILD để cài đặt /opt.)

Ngoài ra các bản phân phối thường cố gắng tuân theo Tiêu chuẩn phân cấp hệ thống tập tin , vì vậy đây là nơi để tìm quy ước chung hơn.


Có một số bí danh để biết vị trí của mỗi thư mục được sử dụng ở đâu? (ví dụ: nơi đặt cấu hình gốc, nơi đặt nhị phân, phụ thuộc, mẫu ...)
Sandburg

5

Nếu bạn sẽ biên dịch phần mềm của riêng mình thì cuối cùng bạn sẽ kiểm soát vị trí cài đặt. Theo quy ước, phần mềm được biên dịch và cài đặt thủ công (không thông qua trình quản lý gói, ví dụ apt, yum, pacman) được cài đặt /usr/local. Một số gói (chương trình) sẽ tạo một thư mục con bên trong /usr/localđể lưu trữ tất cả các tệp có liên quan của chúng, chẳng hạn như /usr/local/openssl. Các gói khác sẽ cài đặt các tệp cần thiết của chúng vào các thư mục hiện có như /usr/local/sbin/usr/local/etc. Đây chỉ là các vị trí mặc định và có thể được thay đổi trong quá trình biên dịch.

Khi bạn đang biên dịch phần mềm, vị trí cài đặt có thể được chỉ định bằng cách sử dụng --prefix=tùy chọn khi chạy ./configure. Rất khuyến khích bạn xem xét tất cả các tùy chọn có sẵn cho gói của bạn bằng cách chạy $ ./configure --help | less. Ngoài ra, duyệt các tài liệu CÀI ĐẶT và README được cung cấp cùng với gói của bạn là một ý tưởng hay. Chúng có xu hướng bao gồm các hướng dẫn cài đặt và thông tin phụ thuộc dành riêng cho gói.

Cũng cần lưu ý rằng mặc dù bạn có thể lưu trữ phần mềm ở bất cứ đâu, theo FHS , mã nguồn cho phần mềm được cài đặt cục bộ nên được lưu trữ trong /usr/local/src Chuẩn hóa nơi bạn lưu trữ cây nguồn của mình sẽ cho phép bạn dễ dàng xác định vị trí cây nếu bạn cần sao chép một kho tập tin cấu hình hoặc nhị phân. Mặc dù một số gói sử dụng nó, mã nguồn của bạn không nên được lưu trữ /usr/srcvì được chỉ định cho phần mềm hệ thống như kernel.

Cuối cùng, bạn cần đảm bảo rằng vị trí cài đặt của bạn được bao gồm trong $PATH. Nếu bạn quyết định cài đặt gói của mình /optnhưng nó không nằm trong $PATHvỏ của bạn sẽ không tìm thấy các tệp thực thi và bạn sẽ phải sử dụng đường dẫn tuyệt đối để gọi các chương trình của mình. Dưới đây là một số cuộc thảo luận tuyệt vời từ AU về việc định cấu hình của bạn$PATH

Đọc thêm: man hier


5

Các Linux Standard Base và các tiêu chuẩn cấp bậc Filesystem được cho là tiêu chuẩn ở đâu và làm thế nào bạn nên cài đặt phần mềm trên hệ thống Linux và sẽ đề nghị đặt phần mềm mà không được bao gồm trong phân phối của bạn hoặc trong /opthay /usr/local/hay đúng hơn là thư mục con trong đó ( /opt/<package> /opt/<provider> /usr/local/bin).

Thực hành tốt nhất là chuyển đổi phần mềm bạn tải xuống thành gói phần mềm có thể cài đặt được phân phối riêng, chẳng hạn như các định dạng dpkg hoặc vòng / phút. Điều đó sẽ tạo điều kiện cho việc báo cáo, nâng cấp và xóa sạch phần mềm.


Điều này khá nhiều chỉ nêu lại câu hỏi chứ không phải trả lời nó. OP đã nhận thức được điều đó /opt/usr/local/là hai tùy chọn khả dụng nhưng muốn có thông tin cụ thể về việc sử dụng một trong những tùy chọn đó. Đây có thể là một câu trả lời hợp lệ nếu thay vào đó nó đưa ra một tuyên bố rằng hai địa điểm có thể hoán đổi cho nhau (mặc dù tôi sẽ tranh luận rằng đó sẽ là một câu trả lời đúng trong trường hợp đó).
JBentley

1

Các nhị phân đi vào binthư mục theo các quy ước chung, cách bạn sắp xếp cấu trúc gói tùy thuộc vào bạn, tôi có thể nghĩ /opt/<prog_name>/nếu nó chỉ là một danh sách các nhị phân.


Tôi e rằng các anh chàng của Team Talk 3 đã tạo ra chương trình theo cách mà mọi thứ nó cần chỉ nằm trong một thư mục (tệp nhị phân, tệp cấu hình, nhật ký), vì vậy Nó không sử dụng / bin hoặc / etc hoặc / var / log
Eiver

1

Tôi đã có cùng một câu hỏi trong khi cài đặt Eclipse thông qua trình cài đặt Eclipse.

Tôi nhận thấy rằng Gimp, Perl và Vim được cài đặt trong /usr/sharethư mục và quyết định cài đặt nó ở đó.


0

Có hai cách chương trình có thể được cài đặt, tùy thuộc vào cách chúng được đóng gói.

  1. Thông qua trình quản lý phần mềm (apt, synaptic, Gdebi, v.v.) - chương trình ở dạng gói, thường là .deb hoặc vòng / phút. Các nhà quản lý phần mềm trong hầu hết các trường hợp xử lý các phụ thuộc và sẽ thường cài đặt các tệp nhị phân vào /usr/bin, cấu hình các tệp /etcvà vv. Họ cũng có thể tạo một tập tin cấu hình cho chương trình tại nhà của bạn, thường ~/.foo. Nếu bạn có thể chỉnh sửa tệp này, bạn cũng có thể dễ dàng thay đổi cài đặt cho phiên của mình theo cách này. Khi bạn loại bỏ gói, người quản lý sẽ tìm thấy tất cả các tệp và xóa chúng một cách sạch sẽ (nó lưu tất cả các vị trí trong một tệp văn bản đặc biệt). Nhưng nó có thể bảo vệ một số tệp cấu hình, ví dụ như tệp trong thư mục nhà của bạn.

  2. Bạn tải xuống một chương trình (thường được nén) dưới dạng các tệp nhị phân được biên dịch sẵn cho kiến ​​trúc của bạn. Tệp thực thi của chương trình thường nằm trong một thư mục bên cạnh các tệp khác (thư viện được liên kết động, v.v.) Toàn bộ thư mục này có thể được sao chép, với quyền root, /opthoặc /usr/bincó thể, nếu quyền cho phép, được sử dụng bởi bất kỳ người dùng nào. Bản thân tôi đặt các thư mục với các tệp nhị phân vào thư mục nhà của tôi ~/bin. Bây giờ bạn sẽ có thể chạy chương trình bằng cách gọi tệp bin của nó.

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.