Sử dụng / opt và / usr / thư mục cục bộ trong ngữ cảnh của PC


65

Sự khác biệt giữa /opt/usr/localthư mục và loại chương trình nào nên được cài đặt cho chúng?

Tôi đã đề cập đến phân cấp hệ thống tệp Linux nhưng lời giải thích không rõ ràng. Theo liên kết trên;

/opt : - Thư mục này được dành riêng cho tất cả các gói phần mềm và tiện ích bổ sung không phải là một phần của cài đặt mặc định

/usr/local: - Hệ /usr/localthống phân cấp được sử dụng bởi quản trị viên hệ thống khi cài đặt phần mềm cục bộ. Nó cần được an toàn để không bị ghi đè khi phần mềm hệ thống được cập nhật.

Trong bối cảnh PC không có máy tính nối mạng, thư mục cài đặt phần mềm nào sẽ được nhiều người dùng cục bộ truy cập? (tức là tôi nên cài đặt một phần mềm như netbeans ở đâu)

Cảm ơn bạn


4
Google Chrome opts để sử dụng thư mục đó vì một số lý do.
Camilo Martin

2
@CamiloMartin Tôi đoán đó là option.
vẫy gọi

4
@becko Chà, nó phải là một optlựa chọn imal nếu Google quảng cáo optnó.
Camilo Martin

3
Ngay cả khi bạn đúng, optimus Prime vẫn tốt hơn.
erm3nda

2
Lol..Tôi đến bữa tiệc muộn .. Nhưng có vẻ như mọi người đã optbắt chước phần bình luận rất nhiều ..: P
john400

Câu trả lời:


71

/optdành cho các ứng dụng của bên thứ ba không phụ thuộc vào bất kỳ sự phụ thuộc nào ngoài phạm vi của gói nói trên. /usr/localdành cho các gói được cài đặt trên máy này ngoài phạm vi của trình quản lý gói phân phối.

Một ví dụ:

Một sip-client nguồn mở được cung cấp dưới dạng .deb sẽ cài đặt vào /usr. Nếu nó được xây dựng với khung Qt, apt sẽ kéo nó vào như một phần phụ thuộc.

Cùng một máy khách sip mã nguồn mở được xây dựng từ nguồn sẽ nằm trong /usr/localđó để nó không bị rối bởi apt nếu sau đó bạn cài đặt gói .deb cho cùng một ứng dụng. Bạn có thể xây dựng các phụ thuộc của nó từ nguồn hoặc lấy chúng từ trình quản lý gói.

Một ứng dụng của bên thứ ba /optđược cho là độc lập. Ví dụ, một máy khách sip độc quyền sử dụng Qt sẽ không dựa vào phiên bản từ apt, nhưng sẽ được gói hoặc liên kết tĩnh trong.

Để biết thêm thông tin, hãy xem Tiêu chuẩn phân cấp hệ thống tập tin .


1
vì vậy netbeans đi đến / usr / local vì nó phụ thuộc vào jdk và các trình biên dịch khác + cộng với nó có tuân theo FHS của linux không?
Niroshan

1
Câu trả lời là có.
Egil

1
Nếu tôi muốn cài đặt condatoàn cầu như đề xuất ở đây , là /optnơi thích hợp?
Alexey

@Egil, Tại sao mac không có thư mục opt?
Pacerier

Tôi trước đây upvoted câu trả lời này, nhưng bây giờ tôi thấy rằng kết luận của nó khác nhau đôi chút từ này Linux Journal bài viết . Bài báo ngụ ý rằng với phần mềm đóng gói, vấn đề là ai đã cung cấp gói . Nếu gói là từ repo gói của hệ điều hành, sau đó nó phải được cài đặt theo /usr(hoặc, có lẽ, thậm chí trực thuộc /bin, /lib, vv) như bình thường. Tuy nhiên, nếu nó là từ một nguồn khác, thì nó nên được đưa vào /usr/local. Điều đó có khả năng bao gồm "sip-client nguồn mở" .debtrong câu trả lời.
sampablokuper

12

Tôi sẽ cài đặt các gói chỉ nhị phân của bên thứ ba để /opt.

Bất cứ điều gì bạn xây dựng bản thân từ nguồn tôi sẽ đưa vào /usr/local.

netbeanslà trong Repos Ubuntu. Bạn có cần một phiên bản cụ thể?


Có bất kỳ lý do đằng sau nó hoặc nó chỉ là một thực hành tốt? (Tôi đã đề cập đến netbeans là một ví dụ - Tôi đã thay đổi phần đó để loại bỏ bất kỳ sự mơ hồ nào). Cảm ơn bạn
Niroshan

Tôi nghĩ rằng những câu trả lời khác đã nói điều đó tốt nhất. Thông thường nhị phân của bên thứ ba là khép kín.
Broam

Còn những thứ phụ thuộc vào thời gian chạy, như phần mềm Python hay Java thì sao? Tôi sẽ đặt chúng lên /optnhưng không chắc nó có đúng không.
Camilo Martin

8

Đó là tất cả về bao bì. Nếu một cái gì đó được đóng gói theo cách LHS (đưa các tệp thực thi vào bin / thư viện vào lib / v.v.) thì nó sẽ đi vào / usr / local.

Nếu một cái gì đó có một thư mục cấp cao nhất và không theo mô hình đó, nó sẽ đi vào / opt. Nói chung, bạn phải thêm một cách rõ ràng các công cụ trong / opt vào PATH của bạn.

Xem thêm Câu hỏi này trên superuser


Câu trả lời này dường như được chứng thực bởi này Linux Journal bài viết .
sampablokuper
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.