Cài đặt tệp trong ~ / .local


8

Khi cài đặt phần mềm được biên dịch từ nguồn, tôi thường đặt chúng vào / usr / local /, đây là mặc định phổ biến nhất theo kinh nghiệm của tôi và thực hành tiêu chuẩn ít nhất là trên Debian và các dẫn xuất của nó.

Bây giờ tôi muốn cài đặt một cái gì đó trong thư mục nhà của mình, và trong lý thuyết tôi có thể tạo bất kỳ thư mục con nào và đặt nó ở đó, tôi bắt đầu tự hỏi về các tùy chọn khác nhau, và nếu có một thực tiễn tiêu chuẩn. Về cơ bản, tôi đã tìm thấy hai câu trả lời:

  • Thư mục con tùy chỉnh, được đặt tên giống như Chương trình , usr
  • Không có thư mục con , có thư mục con ~ / bin , ~ / lib64

Tôi không thích một trong hai thứ này, và nghĩ rằng vì đã có thư mục con ~ / .local , tại sao không cài đặt ở đó? Nó đã chứa ~ / .local / share , nghĩa là riêng tư / usr / share của người dùng cục bộ, do đó có vẻ rất hợp lý khi cài đặt chương trình, tạo toàn bộ ~ / .local / bin , ~ / .local / lib v.v.

Câu hỏi của tôi là: Có ổn không khi cài đặt phần mềm cục bộ trong ~ / .local?

Tại sao tôi không tìm thấy bất kỳ tài liệu tham khảo nào về vấn đề này khi tôi tìm kiếm google hoặc stackexchange để biết nơi cài đặt phần mềm theo người dùng? Đối với tôi có vẻ như một vị trí rõ ràng đến nỗi việc thiếu bài viết cho thấy nó có nghĩa là phải có một cái bắt ở đâu đó.

Có lẽ ai đó đã làm điều này có thể chia sẻ kinh nghiệm của họ, nó là tích cực hay tiêu cực?


Tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào về ~ / .local trong FHS - just / usr / local, ( pathname.com/fhs/pub/fhs-2.3.html#USRLOCALLOCALHIERARCHY )
Jeff Schaller

@JeffSchaller Bạn nói đúng, tôi đã đổi thẻ thành XDG.
đường ống

1
Hãy cẩn thận rằng ~ / .local / share được sử dụng cho dữ liệu ứng dụng cho mỗi người dùng. Tại sao không tạo một ~ / .usr và cài đặt mọi thứ ở đó!
xi

Câu trả lời:


3

Tốt rồi.

Hãy nhớ rằng, đó là thư mục nhà của bạn; bạn có thể làm bất cứ điều gì bạn muốn trong đó. Theo định nghĩa, Gnome / KDE / bất cứ điều gì có thể phàn nàn nếu bạn đi xung quanh xóa .config, nhưng theo định nghĩa, bất cứ điều gì bạn làm trong thư mục chính của bạn sẽ chỉ ảnh hưởng đến bạn . Thêm một số thư mục trong .local là vô hại.

Đặt một cái gì đó vào một thư mục dấu chấm sẽ bất tiện nhẹ, tùy thuộc vào quy trình làm việc của bạn. Nó sẽ ảnh hưởng đến bạn bao nhiêu tùy thuộc vào cách bạn điều hướng hệ thống tập tin và tần suất bạn cần thực hiện. Nếu là tôi, tôi sẽ tạo một thư mục thông thường để hoạt động như một root (có thể gọi nó là cục bộ hoặc ứng dụng ) và sử dụng nó theo cách đó, nhưng đó là sở thích cá nhân.

Trường hợp bạn sẽ gặp vấn đề là hệ thống không được thiết lập để xem thư mục của bạn. Bạn sẽ cần điều chỉnh PATH, MANPATH, INFOPATH và LD_LIBRARY_PATH trong .bashrc của bạn (hoặc bất cứ điều gì phù hợp với vỏ của bạn). Cũng có khả năng sẽ có những "gotchas" nhỏ khác.

Tôi sẵn sàng rằng không có nhiều bài viết ở đây về nó bởi vì không có nhiều người cần phải làm điều đó. Nếu đó là máy cá nhân, có một vài lý do để không sử dụng / usr / local. Mọi thứ đã được thiết lập cho nó trong hầu hết các bản phân phối. Nếu bạn chỉ cài đặt một vài ứng dụng, rất nhiều người sẽ tạo các thư mục trong / opt (như / opt / blender). Solaris làm điều này khi bạn cài đặt một gói.

Trường hợp sử dụng thực sự duy nhất cho những gì bạn mô tả là dành cho nhà phát triển hoặc những người không có quyền root trên máy của họ. Hầu hết những người không có root chỉ yêu cầu quản trị viên cài đặt chương trình cho họ - họ có thể sẽ không biết cách biên dịch chương trình.


"Trường hợp sử dụng thực sự duy nhất cho những gì bạn mô tả là dành cho nhà phát triển", bingo. Tôi lấy chương trình này từ kho git nhiều lần mỗi ngày và cài đặt nó trong nhà có nghĩa là tôi có thể dễ dàng tự động hóa việc nâng cấp hơn mà không phải thiết lập quyền sudo đặc biệt hoặc tương tự. Tôi nghĩ đơn giản là tôi sẽ thử nó.
đường ống

1

Những lý do rõ ràng tại sao không:

  • thư mục nhà của người dùng thường bị giới hạn về kích thước (hạn ngạch trên các hệ thống dùng chung)
  • cấu hình được xác định trước thường đã được thêm ~/binvào của bạn PATH(giúp cài đặt thuận tiện hơn trong thư mục đó )
  • nếu bạn có quyền điều khiển máy, việc cài đặt vào một vị trí có thể chia sẻ sẽ hoạt động tốt, ví dụ : /usr/local/bin. Thư mục dấu chấm của bạn không (thường) có thể chia sẻ với các tài khoản người dùng khác.
  • dễ dàng bỏ qua các thư mục dấu chấm khi tìm kiếm cách sử dụng không gian đĩa bất thường. Ví dụ, tính năng sai ccache đã sử dụng 1Gb trong nhà của tôi, trước khi tôi nhận thấy nó. Trình duyệt và rác máy tính để bàn cũng là những người vi phạm thường xuyên (và hơn 15 năm trong quá trình không có công cụ quản lý đĩa phù hợp).

Về mặt tích cực: nó sẽ làm giảm sự lộn xộn - một chút. Tôi có 55 thư mục thường xuyên trong thư mục nhà của tôi, cũng như 91 thư mục.


1

Các quy ước chung (đã qua sử dụng ví dụ như với một số install-homemục tiêu, như thế nào cho nhanh nhẹn , được gọi là hg) là để đặt chúng trực thuộc $HOME, tức là, trong $HOME/bin, $HOME/etc, $HOME/lib, và vân vân. Đây là kết quả của điệu nhảy cấu hình GNU bắt đầu bằng ./configure --prefix=$HOME.


-2

Có bạn có thể nhưng nó sẽ bị ô nhiễm bởi các cài đặt phần mềm khác. Tôi sử dụng $HOME/localvà sửa đổi bashrc với đường dẫn như

export PATH=.:${HOME}/local/bin:${PATH}

export LD_LIBRARY_PATH=${HOME}/local/lib:${LD_LIBRARY_PATH}

export PREFIX=${HOME}/local

để bạn biết những gì bạn đã cài đặt và vì chúng là lần đầu tiên trên ngăn xếp đường dẫn, chúng sẽ được tìm thấy trước các nhị phân khác, libs, v.v. Khi sử dụng những thứ như configure hoặc cmake, tiền tố rất dễ nhớ

--prefix=${PREFIX}

1
(1) Bạn có thể cài đặt phần mềm vào ~/.local, nhưng nó sẽ bị ô nhiễm bởi các phần mềm cài đặt khác. Vì vậy, tôi sử dụng bản quyền $HOME/local (thay thế). Huh? Có gì khác biệt? (2) Đừng đặt .vào đầu PATH.
Scott

(1) cài đặt cấu hình phần mềm và các tệp khác vào .local NONE sẽ cài đặt thành cục bộ theo mặc định (2) Tôi luôn sử dụng .: Trong đường dẫn của tôi
Skynet
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.