it-swarm-vi.com

Khi cài đặt ứng dụng người dùng, "thực tiễn tốt nhất" gợi ý chúng nằm ở đâu?

Thỉnh thoảng tôi cài đặt các ứng dụng theo cách thủ công, thay vì sử dụng apt hoặc trình quản lý gói khác.

Vị trí nào (/usr/, /usr/local/, /opt/, /home/, v.v.) được đề xuất bởi "cách thực hành tốt nhất" để cài đặt ứng dụng người dùng?

206
citadelgrad

Điều đó phụ thuộc, thực sự. Nếu ứng dụng có tệp tạo tệp, hoặc ví dụ cho ứng dụng python nếu ứng dụng sử dụng distutils (ví dụ: có tệp setup.py) hoặc hệ thống xây dựng/cài đặt tương tự, bạn nên cài đặt nó vào /usr/local/. Đây thường là hành vi mặc định.

Theo những gì tôi hiểu, /usr/local/ có cấu trúc phân cấp tương tự như /usr/. Tuy nhiên, các thư mục như /usr/bin//usr/lib/ thường được dành riêng cho các gói cài đặt qua apt. Vì vậy, một chương trình mong đợi được "cài đặt" vào /usr/ sẽ hoạt động tốt trong /usr/local/.

Nếu bạn chỉ cần giải nén một tarball và chạy trực tiếp (ví dụ: Firefox), sau đó đặt nó vào /opt/. Một chương trình chỉ cần một thư mục và sẽ nhận được tất cả các tệp/thư viện liên quan đến thư mục đó có thể nhận một thư mục cho chính nó trong /opt/.

182
Umang

Thật tốt khi nhớ rằng /usr không đại diện cho người dùng mà là nix tài nguyên hệ thống.

Do đó, tôi có xu hướng hình dung rằng bất kỳ bản phân phối nào cũng có quyền dậm chân trên tất cả các nội dung của /usr, và các bổ sung cụ thể của tôi cho hệ thống sẽ đi vào /usr/local, mà tôi giữ gìn trước khi thực hiện nâng cấp.

Trong khi đó, các ứng dụng và những thứ khác đi vào /opt.

Một số người cảm thấy thoải mái khi đặt công cụ vào /home, mặc dù tôi hiếm khi tuân theo quy ước đó.

Tất cả những gì đã nói, tôi để người quản lý gói phân phối làm mọi việc theo cách của mình trước, và sau đó làm như trên khi công cụ lăn tay.

116
Walt Stoneburner

Cài đặt các chương trình không ổn định như firefox devel in/home/user/opt/giúp dễ dàng gỡ bỏ hơn và không gây nhầm lẫn cho người dùng khác về việc họ nên sử dụng phiên bản nào ... Vì vậy, nếu đó không phải là chương trình để sử dụng toàn cầu, hãy cài đặt nó trong một thư mục con trong thư mục nhà của bạn.

Không bao giờ cài đặt chương trình trong/usr /, nó có thể gây ra sự hỗn loạn, những thứ được cài đặt trong/usr/chỉ dành cho các gói phân phối./usr/local/dành cho các gói được biên dịch cục bộ. Và cấu trúc hoạt động chính xác theo cùng một cách! các tệp trong/usr/local/sẽ được ưu tiên hơn các tệp trong/usr /

/ opt/nên được sử dụng để cài đặt các gói (nhị phân) được biên dịch sẵn (Thunderbird, Eclipse, Netbeans, IBM NetSphere, v.v.) và tương tự. Nhưng nếu chúng chỉ dành cho một người dùng thì chúng nên được đặt trong thư mục chính của bạn.

Nếu bạn muốn có thể chạy một chương trình được cài đặt ở một vị trí "lạ" (như/home/user/opt/firefox /) mà không cần nhập toàn bộ đường dẫn bạn cần thêm vào biến $ PATH của mình, bạn có thể làm điều này thêm một dòng như thế này trong /home/user/.profile của bạn

export PATH=/home/user/opt/firefox:$PATH

Tên thư mục phải là tên chứa tệp thực thi bạn cần chạy.

34
LassePoulsen

Tiêu chuẩn phân cấp hệ thống tập tin Linux biểu thị /usr/local.

Từ http://tldp.org/LDP/Linux-Filesystem-HVELy/html/usr.html :

Ý tưởng ban đầu đằng sau '/ usr/local' là có một thư mục riêng ('local') '/ usr' trên mỗi máy bên cạnh '/ usr', có thể chỉ được gắn ở chế độ chỉ đọc từ một nơi khác. Nó sao chép cấu trúc của '/ usr'. Ngày nay, '/ usr/local' được coi là một nơi tốt để giữ các chương trình tự biên dịch hoặc bên thứ ba. Hệ thống phân cấp/usr/cục bộ được quản trị viên hệ thống sử dụ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. Nó có thể được sử dụng cho các chương trình và dữ liệu có thể chia sẻ giữa một nhóm các máy chủ, nhưng không được tìm thấy trong/usr. Phần mềm được cài đặt cục bộ phải được đặt trong/usr/local chứ không phải/usr trừ khi nó được cài đặt để thay thế hoặc nâng cấp phần mềm trong/usr.

26
popey

Tôi thường có một thư mục có tên "Chương trình" trong nhà, nơi tôi cài đặt các chương trình đó, đủ lạ (hoặc không) tất cả chúng đều là Java thứ ngay bây giờ.

Nó có một lợi thế lớn đối với tôi, khi tôi cài đặt lại hoặc thay đổi máy tính, chúng sẽ được di chuyển cùng với phần còn lại của nhà tôi. Nó có một nhược điểm rõ ràng, những ứng dụng đó chỉ có sẵn cho người dùng của tôi.

6
Javier Rivera

Sử dụng "checkinstall" để chuyển đổi gói người ngoài hành tinh của bạn sang một bản sửa lỗi để có thể gỡ cài đặt bằng trình quản lý gói.

Xin lưu ý rằng các tệp cấu hình thường sẽ không được xử lý như các tệp cấu hình (có thể bị bỏ qua hoặc có thể được coi là một phần của ứng dụng) và các tập lệnh trước và sau khi cài đặt đôi khi bị rối, mặc dù vậy, nó sẽ cảnh báo bạn khi nó nghĩ deb sẽ có một kịch bản xấu trước hoặc sau khi cài đặt.

1