Những bản phân phối nào có $ HOME / .local / bin trong $ PATH?


42

Ví dụ: trong Ubuntu, luôn có một .localthư mục trong thư mục chính và .profilebao gồm dòng này:

PATH="$HOME/bin:$HOME/.local/bin:$PATH"

$HOME/.local/binkhông tồn tại theo mặc định, nhưng nếu nó được tạo thì nó đã có sẵn $PATHvà có thể thực thi được bên trong.

Điều này không được đề cập chính xác trong đặc tả thư mục XDG nhưng dường như bắt nguồn từ nó.

Điều tôi băn khoăn là liệu điều này có đủ phổ biến đến mức nó thường có thể được giả sử tồn tại trong các bản phân phối người dùng cuối phổ biến nhất. Chẳng hạn, đó là trong tất cả các công cụ phái sinh Debian, hay ít nhất là các công cụ Ubuntu? Làm thế nào về hệ sinh thái Red Hat / Fedora / CentOS? Và như vậy với Arch, Suse, và những gì mọi người đang sử dụng ngày nay.

Để được rõ ràng hơn, điều này chỉ dành cho $HOME/.local/bin, không $HOME/bin .

Vì tò mò, hãy bao gồm BSD, OS / X và những người khác nếu bạn có thông tin. :)


Tôi đã thấy câu hỏi này được hỏi trước đây, nhưng chưa gặp phải một hệ thống nào thực hiện điều này. Để đặt câu hỏi theo chủ đề thay vì ý kiến , bạn có thể loại bỏ các cân nhắc về "đủ phổ biến" và chỉ cần hỏi nó đến từ đâu và các ví dụ về các hệ thống thực hiện điều này cho tài khoản người dùng mới. "Gần đây" Fedora làm điều này, ví dụ.
Thomas Dickey

Tôi có thể tua lại để hỏi đơn giản là "cái nào" làm điều đó, chắc chắn. Đó là một chút đấu tranh để hình thành câu hỏi vì những gì tôi theo sau không phải là bất kỳ câu trả lời chắc chắn nào, nhưng chủ yếu là cảm giác nếu điều này có thể được giả định một cách hợp lý trong hầu hết các trường hợp 2016.
Stoffe

1
Tôi không có nó trên con đường của mình, và tôi chắc chắn sẽ không đặt nó ở đó. (Debian, nhưng xdm / fvwm, không phải Gnome hay KDE làm máy tính để bàn).
dirkt

1
Tôi đã kiểm tra một hệ thống có thể có nó. Không có tài khoản phát triển nào của tôi sử dụng bash và đóng gói đơn giản là không đủ kỹ lưỡng để thông báo trừ khi tôi thực hiện một kiểm tra đặc biệt (xem newpath ).
Thomas Dickey

1
Ubuntu của IIRC /etc/skel/.profilelên đến và bao gồm ít nhất 14,04 thử nghiệm cho sự hiện diện của người dùng $HOME/binvà thêm nó vào PATHnếu nó tồn tại; ngược lại, 16.04 xuất hiện để thêm cả hai $HOME/bin$HOME/.local/binvô điều kiện. Tôi không nhớ lại việc bổ sung Ubuntus trước đó $HOME/.local/bin- nhưng tôi không thấy bất cứ điều gì có liên quan trong bashthay đổi gói (được cho là sở hữu /etc/skel/.profile).
Steeldo

Câu trả lời:


41

Các ~/.localthư mục là một phần của thông số phân cấp tệp systemd và là phần mở rộng của thông số xdg user-dirs

Nó có thể gây nhầm lẫn vì các gói dẫn xuất Debian bashđã bị mất ~/.localđường dẫn khi chúng được chuyển sang bash 4.3, chúng đã có nó trong bash 4.2.

Đây là một lỗi và một bản vá đã được sử dụng trong hệ thống Debian một chút.

Đây lỗi là lý do Ubuntu 16.04 có ~ / .local trong đường dẫn và Ubuntu 17.04 thì không.

Nếu bạn chạy systemd-pathnhư một người dùng và bạn sẽ thấy rằng nó được dự định nằm trong đường dẫn.

$ systemd-path user-binaries
/home/foo/.local/bin

Về lý thuyết, câu trả lời cho truy vấn của bạn là Bất kỳ bản phân phối nào sử dụng systemd hoặc muốn duy trì khả năng tương thích với systemd.

Có nhiều thông tin hơn trong file-hierarchy(7)


1
Cảm ơn! Vì tò mò thuần túy, đây có phải là trường hợp trong thời gian mới bắt đầu? Chỉ hỏi bởi vì trí nhớ của tôi nói rằng nó ở đó sớm hơn systemd, nhưng cũng có khả năng là tôi đã đánh giá sai nó!
Stoffe

Tôi nghi ngờ đó là trước systemd, mãi mãi hội nghị là ~ / bin.
pfalcon

Arrgh, lỗi này dường như cũng đã đến vào ngày 16.04 nhờ phép bash backport 4.3
Adrian

Hoạt động trong Ubuntu 18.04.
Daniel

1

Trên các bản phân phối dựa trên RPM, tình hình có vẻ như thế này

  • RHEL 7 - không thêm nó vào cuối PATH, hãy xem https://ormszilla.redhat.com/show_orms.cgi?id=1583227 khi bạn sử dụng shell đăng nhập. Nó sẽ hoạt động với sudo su -l johndoenhưng nó sẽ không hoạt động nếu bạn không sử dụng công -ltắc.
  • CentOS 7 - xem RHEL, nó luôn theo sau RHEL.
  • Fedora 28 (có lẽ cũng cũ hơn) - giống như RHEL / CentOS, được thêm vào cuối PATH

Nếu bạn muốn xem những lỗi đó được sắp xếp, xin đừng quên bỏ phiếu / nhận xét về những lỗi này vì điều này sẽ làm nổi bật tầm quan trọng của vấ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.