Distribusi mana yang memiliki $ HOME / .local / bin di $ PATH?

42

Contoh: di Ubuntu, selalu ada .localdirektori di direktori home dan .profiletermasuk baris ini:

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

$HOME/.local/bintidak ada secara default, tetapi jika itu sudah dibuat $PATHdan executable di dalamnya dapat ditemukan.

Ini tidak disebutkan secara spesifik dalam spesifikasi direktori XDG tetapi tampaknya berasal darinya.

Yang saya heran adalah apakah ini cukup umum sehingga biasanya diasumsikan ada di distribusi pengguna akhir yang paling umum. Apakah itu, misalnya di semua turunan Debian, atau setidaknya yang Ubuntu? Bagaimana dengan ekosistem Red Hat / Fedora / CentOS? Dan seterusnya dengan Arch, Suse, dan apa yang digunakan orang saat ini.

Supaya lebih jelas, ini hanya untuk $HOME/.local/bin, bukan $HOME/bin .

Karena penasaran, jangan ragu untuk memasukkan BSD, OS / X dan lainnya jika Anda memiliki informasi. :)

Stoffe
sumber
Saya telah melihat pertanyaan ini diajukan sebelumnya, tetapi belum menemukan sistem yang melakukan ini. Untuk membuat pertanyaan menjadi topik daripada pendapat , Anda mungkin menghilangkan pertimbangan "cukup umum" dan hanya bertanya dari mana asalnya dan contoh sistem yang melakukan ini untuk akun pengguna baru. "Terkini" Fedora melakukan ini, misalnya.
Thomas Dickey
Saya dapat menulis ulang untuk meminta "yang" melakukannya, tentu saja. Ini adalah sedikit perjuangan untuk merumuskan pertanyaan karena apa yang saya cari bukanlah jawaban yang pasti, tetapi sebagian besar perasaan jika ini dapat dianggap wajar dalam kebanyakan kasus 2016.
Stoffe
1
Saya tidak memilikinya di jalan saya, dan saya pasti tidak akan meletakkannya di sana. (Debian, tetapi xdm / fvwm, bukan Gnome atau KDE sebagai desktop).
dirkt
1
Saya memeriksa sistem yang mungkin memilikinya. Tidak ada akun pengembangan saya yang menggunakan bash , dan pembuat paket tidak cukup teliti untuk memperhatikan kecuali saya melakukan pemeriksaan khusus (lihat newpath ).
Thomas Dickey
1
Ubuntu IIRC /etc/skel/.profilehingga dan termasuk setidaknya 14,04 tes untuk keberadaan pengguna $HOME/bindan menambahkannya ke PATHjika ada; sebaliknya, 16,04 tampaknya menambahkan keduanya $HOME/bindan $HOME/.local/bintanpa syarat. Saya tidak ingat Ubuntus sebelumnya menambahkan $HOME/.local/binsama sekali - tapi saya tidak melihat sesuatu yang relevan dalam bashpaket changelog (yang seharusnya dimiliki /etc/skel/.profile).
steeldriver

Jawaban:

41

The ~/.localdirektori adalah bagian dari yang systemd file hirarki spesifikasi dan merupakan perpanjangan dari xdg user-dirs spek

Ini bisa membingungkan karena paket-paket turunan Debian untuk bashkehilangan ~/.localjalur ketika mereka diubah menjadi bash 4.3 mereka memilikinya di bash 4.2.

Ini adalah bug , dan tambalan telah ada di sistem Debian untuk beberapa saat.

Bug ini adalah alasan Ubuntu 16.04 memiliki ~ / .local in the path dan Ubuntu 17.04 tidak.

Jika Anda menjalankan systemd-pathsebagai pengguna dan Anda akan melihat bahwa itu dimaksudkan untuk berada di jalur.

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

Secara teori, jawaban untuk pertanyaan Anda adalah Setiap distro yang menggunakan systemd atau ingin mempertahankan kompatibilitas dengan systemd.

Ada informasi lebih lanjut di file-hierarchy(7)

gdahlm
sumber
1
Terima kasih! Karena penasaran murni, apakah ini juga yang terjadi pada masa pemula? Hanya bertanya karena ingatanku mengatakan itu ada di sana lebih awal dari systemd, tetapi kemungkinan besar aku salah mengingatnya!
Stoffe
Saya ragu itu sebelum systemd, selamanya konvensi itu ~ / bin.
pfalcon
Arrgh, bug ini tampaknya juga telah tiba di 16,04 courtesy of bash backported 4,3
Adrian
Bekerja di Ubuntu 18.04.
Daniel
1

Pada distro berbasis RPM situasinya terlihat seperti ini

  • RHEL 7 - menambahkannya ke akhir PATH lihat https://bugzilla.redhat.com/show_bug.cgi?id=1583227 ketika Anda menggunakan shell login. Ini akan bekerja dengan sudo su -l johndoetetapi tidak akan bekerja jika Anda tidak menggunakan -lsakelar.
  • CentOS 7 - lihat RHEL, selalu mengikuti RHEL.
  • Fedora 28 (mungkin lebih tua juga) - sama seperti RHEL / CentOS, ditambahkan ke akhir PATH

Jika Anda ingin melihat bug itu diurutkan, jangan lupa untuk memberikan suara / mengomentari bug tersebut karena ini akan menyoroti pentingnya masalah ini.

Sorin
sumber