Jak wspomniano wcześniej , /usr/localjest przeznaczony jako przedrostek dla oprogramowania zainstalowanego przez administratora systemu, podczas gdy /usrpowinien być używany dla oprogramowania zainstalowanego z pakietów dystrybucji.
Ideą jest to, aby uniknąć kolizji z rozproszonego oprogramowania (takie jak rpmi debpakiety) i dać Admin pełne panowanie nad „lokalnym” prefiksem.
Oznacza to, że administrator może zainstalować niestandardowo skompilowane oprogramowanie, wciąż korzystając z dystrybucji typu debian.
Oprogramowanie umieszczone w / lub / usr może zostać zastąpione przez uaktualnienia systemu (chociaż zalecamy, aby dystrybucje nie zastępowały danych w / etc w tych okolicznościach). Z tego powodu lokalnego oprogramowania nie wolno umieszczać poza / usr / local bez uzasadnionego powodu.
Podczas instalowania oprogramowania specyficznego dla użytkownika uther sugeruje użycie $HOMEjako prefiksu, ponieważ zapewnia to uprawnienia do zapisu. Osobiście uważam, że jestem $HOME/.localbardziej eleganckim rozwiązaniem, ponieważ pozwala uniknąć zaśmiecania twojego (mam nadzieję) ładnego i uporządkowanego katalogu domowego!
$HOME/.local/sharejest już używany w specyfikacji katalogu bazowego XDG freedesktop.org , więc nie trzeba wiele wyobrażać sobie dodawania $HOME/.local/bindo niego $PATHi tworzenia $HOME/.local/libitp., gdy jesteś przy nim.
Jeśli tak naprawdę nie chcesz, aby twój prefiks był ukrytym katalogiem, możesz łatwo utworzyć do niego również symboliczny link, np .:
ln -s .local ~/local
Dygresja
Warto zauważyć, że .config(nie .local/etc) jest wartością domyślną dla $XDG_CONFIG_HOMEplików konfiguracyjnych specyficznych dla użytkownika. Powinienem również zauważyć, że niestety duża część oprogramowania ignoruje XDG i tworzy pliki konfiguracyjne w dowolnym miejscu (zwykle w katalogu głównym $HOME). Należy również pamiętać, że $XDG_CONFIG_HOMEmoże być niezbrojony, jeśli $HOME/.configpożądane jest ustawienie domyślne .
Co dziwne, nie ma katalogu zarezerwowanego dla domyślnych plików konfiguracyjnych dystrybucji, więc nie ma sposobu, aby dowiedzieć się, czy plik /etczostał dostarczony przez dystrybucję, czy edytowany przez administratora systemu.