Điểm:0

Phần mềm được cài đặt trên Linux ở đâu? Sự khác biệt giữa/opt và/usr là gì?

lá cờ us

Tôi muốn làm rõ triết lý cài đặt thư viện và ứng dụng phần mềm cũng như các phương pháp hay nhất trong Linux.Theo hiểu biết của tôi từ Tiêu chuẩn phân cấp hệ thống tệp (FHS), phần mềm mới phải được cài đặt trong/opt và đó là những gì trình quản lý gói thực hiện. Tuy nhiên, trình quản lý gói cũng cài đặt phần mềm ứng dụng trong thư mục/use/local hay chỉ phần mềm thư viện? Ví dụ: tôi đã cài đặt thư viện Eigen C++, thư viện dựa trên tệp tiêu đề, sử dụng:

Sudo apt cài đặt libeigen3-dev

Tôi đã tìm thấy các tệp Eigen trong /usr/include. Tuy nhiên, từ việc đọc các tài liệu CMake, khi tôi đang phát triển các thư viện C++, tôi có nên định cấu hình CMake của mình để cài đặt chúng trong/usr/local (Đây là giá trị mặc định cho CMAKE_INSTALL_PREFIX)? Điều này đặt ra câu hỏi, tại sao Eigen lại được cài đặt trong /usr/include thay vì /usr/local/include? Không phải là các thư mục /usr/bit /usr/include dành cho các ứng dụng hệ thống như các lệnh ls và cat sao?

Hơn nữa, sự khác biệt giữa các thư viện được lưu trong /usr/local so với /usr/share là gì?

Rất cám ơn trước sự giúp đỡ của bạn. Tôi hy vọng hiểu rõ về các phương pháp hay nhất trong việc cài đặt ứng dụng và phần mềm thư viện trong Linux.

Rob avatar
lá cờ in
Rob
Tôi khiêm tốn tin rằng không có câu trả lời nào cho câu hỏi, vì vậy, v.d. nếu bạn nói $ whereis firefox >câu trả lời sẽ giống như thế này: firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/share/man/man1/firefox.1.gz và cứ thế đơn giản hóa những thứ bạn đi: $ which firefox và đầu ra sẽ là: /usr/bin/firefox . Vì vậy, cú đâm của bạn là OK, nhưng không dứt khoát. Các gói phải luôn có các mục cụ thể và nên được giữ riêng ;-) Không có luật nào quy định thư mục nào, v.v.
waltinator avatar
lá cờ it
Đọc `man hier`.
user535733 avatar
lá cờ cn
"*phần mềm mới phải được cài đặt trong /opt*" là không chính xác. /opt chỉ là một trong số các vị trí có thể tuân thủ FHS.
Điểm:6
lá cờ cn

/opt/ được sử dụng cho các ứng dụng của bên thứ 3 cung cấp bóng tar để trích xuất. Nói chung, phần mềm được cung cấp thiết lập hoàn chỉnh với các quyền chính xác và bạn nhận được hướng dẫn sao chép dịch vụ vào hệ thống để kích hoạt dịch vụ đó. Mysql, Apache, Jasperserver đều cung cấp các bản cài đặt thay thế.

/opt/ không bao giờ được sử dụng bởi chính hệ thống để tránh xung đột.

Khi phần mềm được cài đặt trong /opt/ bạn có xu hướng cài đặt nó với số phiên bản trong tên thư mục để bạn có thể cài đặt nhiều hơn 1 phiên bản và sử dụng liên kết tượng trưng cho phiên bản đang hoạt động. Bằng cách đó, bạn có thể cài đặt Mysql v8 trên một hệ thống vẫn sử dụng v5, kiểm tra ứng dụng của bạn trước khi chuyển sang bản phát hành Ubuntu tiếp theo.

/usr/ là một phần của Linux mặc định và được sử dụng để lưu trữ các phần của bản cài đặt thông qua trình quản lý gói của hệ thống đó. Để tránh trùng lặp (điều mà các cửa sổ đã gặp phải trong các phiên bản cũ hơn) phần mềm Linux trong các thư mục, một nhóm lớn những người sáng tạo đã đồng ý. Một lợi ích khác là phần mềm có thể nhỏ hơn vì bạn không cần cung cấp thư viện cho phần mềm của mình.

Ahmad Abuaish avatar
lá cờ us
Xin chào @Rinzwind, Rất cám ơn vì phản hồi chi tiết. Câu trả lời của bạn đã giúp tôi hiểu mục đích của `/opt`. Tôi cũng tìm hiểu sâu hơn về FHS và hiểu cách sử dụng hợp lý `/usr/local`. Phần mềm được cài đặt cục bộ sẽ được cài đặt trong `/usr/local` và phần mềm do trình quản lý gói cài đặt sẽ được cài đặt trong `/usr`. Vì vậy, trong CMakeLists của tôi, tôi phải sử dụng `/usr/local/lib` và `/usr/local/include` làm đích. Một lần nữa xin cảm ơn rất nhiều, @Rinzwind, vì phản hồi chi tiết của bạn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.