Hangi dağıtımların $ PATH'ta $ HOME / .local / bin var?


42

Örnek: Ubuntu'da .localana dizinde daima bir dizin bulunur ve .profilebu satırı içerir:

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

$HOME/.local/binvarsayılan olarak mevcut değildir, ancak oluşturulduysa zaten $PATHiçindedir ve içindeki yürütülebilir dosyaları bulunabilir.

Bu, XDG dizini belirtiminde tam olarak belirtilmemiştir, ancak ondan türetilmiş görünmektedir.

Merak ediyorum, eğer bu en yaygın son kullanıcı dağıtımlarında var olduğu varsayılabilir. Örneğin, tüm Debian türevlerinde mi, yoksa en azından Ubuntu'larda mı? Red Hat / Fedora / CentOS ekosistemine ne dersiniz? Ve böylece Arch, Suse ve insanlar bugünlerde ne kullanıyor?

Ekstra Açık olmak gerekirse, bu içindir $HOME/.local/bin, değil $HOME/bin .

Meraktan, bilginiz varsa, BSD, OS / X ve diğerleri dahil olmaktan çekinmeyin. :)


Bu soruyu daha önce sordum, ancak bunu yapan bir sistemle karşılaşmadım. Soru yapmak için topikal ziyade görüş , siz "ortak, yeterli uzunlukta" nin hususları ortadan kaldırmak ve ondan ve örnekler yeni kullanıcı hesapları için bunu sistemlerin geldiğini basitçe isteyebilir. Örneğin, "Son" Fedora bunu yapıyor.
Thomas Dickey

Tabii ki "hangisini" yapıp yapmadığına sormak için cevap verebilirim. Peşinde olduğum herhangi bir kesin cevap olmadığı için soruyu formüle etmek biraz zor, ama çoğu zaman 2016'nın çoğunda bu durumun makul bir şekilde kabul edilip edilmediğine dair bir his var.
Stoffe

1
Benim yolumda yok ve kesinlikle oraya koymuyorum. (Debian, ancak xdm / fvwm, ne Gnome ne de masaüstü olarak KDE).
dirkt

1
Sahip olabileceği bir sistemi kontrol ettim. Geliştirme hesaplarımın hiçbiri bash kullanmıyor ve özel bir kontrol yapmadığım sürece paketleyiciler fark etmek için yeterince ayrıntılı değil (yeni yola bakın ).
Thomas Dickey

1
IIRC Ubuntu /etc/skel/.profile, bir kullanıcının varlığı için en az 14.04 teste kadar ve dahil olmak üzere varsa $HOME/binve PATHvarsa ekler ; aksine, 16.04 görünür hem eklemek $HOME/binve $HOME/.local/binkoşulsuz. Ubuntus'un daha önce eklediğini hatırlamıyorum $HOME/.local/bin- ama bashchangelog paketinde ilgili bir şey görmüyorum (sözde /etc/skel/.profile).
steeldriver

Yanıtlar:


41

~/.localDizinleri parçası olan systemd dosya hiyerarşi spec ve bir uzantısıdır xdg user-dirs spec

Bash 4.3'te yeniden doğduklarında yolu bashkaybettiği için Debian'dan türetilmiş paketler olarak kafa karıştırıcı olabilir ~/.local, bash 4.2'de aldılar.

Bu bir hatadır ve bir parçadır Debian sisteminde bir yama duruyor.

Bu hata Ubuntu 16.04'ün yolda ~ / .local olmasının ve Ubuntu 17.04'ün olmamasının nedenidir.

systemd-pathBir kullanıcı olarak çalıştırırsanız ve onun yolunda olması gerektiğini göreceksiniz.

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

Teoride, sorgunuza verilen cevap , systemd kullanan veya systemd ile uyumluluğu korumak isteyen herhangi bir dağıtımdır.

Daha fazla bilgi var file-hierarchy(7)


1
Teşekkürler! Saf meraktan başka bir şey olmaz mıydı? Sadece soruyorum çünkü hafızam sistemdenden daha önce orada olduğunu söylüyor, ama eşit derecede büyük olasılıkla onu yanlış anlıyorum!
Stoffe

Sistemden önce olduğundan şüpheliydim, sonsuza kadar kongre ~ / bin idi.
pfalcon

Arrgh, bu hatanın da 16.04'te, desteklenen bir bash'ın izniyle geldiği görülüyor. 4.3
Adrian

Ubuntu'da çalışır 18.04.
Daniel

1

RPM tabanlı dağıtımlarda durum böyle gözüküyor

  • RHEL 7 - bunu bir PATH sonuna ekler, bir giriş kabuğu kullandığınızda https://bugzilla.redhat.com/show_bug.cgi?id=1583227 adresini ziyaret edin . Çalışacak, sudo su -l johndoeancak -lanahtarı kullanmazsanız çalışmaz .
  • CentOS 7 - RHEL'e bakınız, daima RHEL'i takip eder.
  • Fedora 28 (muhtemelen daha yaşlı) - RHH / CentOS ile aynı, PATH sonuna eklendi

Bu hataları sıralı görmek isterseniz, bu konunun önemini vurgulayacağı için lütfen oylamayı / yorum yapmayı unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.