Korzystam z wielu aplikacji typu open source, w tym Java i Tomcat. Wygląda na to, że większość instrukcji uruchamia moje aplikacje z /var
katalogu. Ale co jakiś czas widzę też /opt
katalog. W tym momencie też widzę, /usr/local/
a nawet /etc
.
Kiedy powinienem instalować aplikacje w jednym folderze? Czy są zalety i wady każdego z nich? Czy ma to związek z historią smaków (Solaris vs Linux lub Red Hat vs Ubuntu)?
linux
installation
Trevor Allred
źródło
źródło
Odpowiedzi:
Standardem dla tych problemów jest Standard Hierarchii Plików . To dość duży dokument. Zasadniczo (i bardzo z grubsza) standardowe ścieżki w systemie Linux to:
/bin
i/sbin
są dla kluczowych programów dla systemu operacyjnego, sbin jest tylko dla administratorów;/usr/bin
i/usr/sbin
są dla nieistotnych programów, sbin jest tylko dla administratorów;/var
jest dla żywych danych dla programów. Mogą to być dane z pamięci podręcznej, dane buforowania, dane tymczasowe (o ile nie są w nim/tmp
usuwane przy każdym ponownym uruchomieniu) itp.;/usr/local
jest dla programów zainstalowanych lokalnie. Zazwyczaj hostuje programy zgodne ze standardami, ale nie zostały spakowane dla systemu operacyjnego, ale raczej instalowane ręcznie przez administratora (na przykład./configure && make && make install
), a także skrypty administratora;/opt
dotyczy programów, które nie są spakowane i nie spełniają standardów. Po prostu umieściłeś wszystkie biblioteki razem z programem. Często jest to szybkie i nieprzyzwoite rozwiązanie, ale można go również stosować do programów tworzonych przez Ciebie i dla których chcesz mieć określoną ścieżkę. Możesz stworzyć w nim własną ścieżkę (np./opt/yourcompany
), W takim przypadku zachęcamy Cię do zarejestrowania jej jako części standardowych ścieżek;/etc
nie powinien zawierać programów, a raczej konfiguracje.Jeśli twoje programy są specyficzne dla usług świadczonych przez usługę,
/srv
może być dla nich również dobrą lokalizacją. Na przykład wolę korzystać/srv/www
z witryn internetowych niż/var/www
mieć pewność, że katalog będzie zawierał tylko dane, które sam dodałem, i nic, co pochodzi z pakietów oprogramowania.Istnieją pewne różnice między dystrybucjami. Na przykład systemy RedHat używają
libexec
katalogów, gdy systemy Debian / Ubuntu tego nie robią.FHS jest najczęściej używany przez dystrybucje Linuksa (tak naprawdę nie znam żadnego innego systemu operacyjnego, który byłby z nim zgodny). Inne systemy uniksowe tego nie przestrzegają. Na przykład systemy BSD zwykle używają
/usr/local
programów spakowanych, co nie ma miejsca w przypadku Linuksa. Solaris ma bardzo różne standardowe ścieżki.Gorąco zachęcam do zapoznania się z dokumentem FHS, który zamieściłem powyżej, jeśli chcesz dowiedzieć się więcej na ten temat.
źródło
/srv
. Szukałem miejsca na moje repozytoria git i nie podobały mi się moje treści Apache/var/www
./srv
wydaje się idealnym miejscem.var
zamiastdata
?/var
dlatego, że dotyczy „różnych danych”. Na początku Unix był hostowany na jednym dysku. Kiedy to nie wystarczyło, dostali nowy, zamontowali go/usr
i przenieśli tam wszystkie dane użytkownika. Ale to nie wystarczyło i wkrótce stary dysk znów się zapełnił. Więc przenieśli wszystkie pliki binarne system mógłby bez Boot od/bin
celu/usr/bin
. Po prostu zabraknie im miejsca. Później musieli udostępniać dane między użytkownikami, aby utworzyli je/var
i wykorzystali jako listę rozwijaną. FHS jest pełen takich starych decyzji i powinien zostać podjęty ze szczyptą soli.opt
oznacza opcjonalne oprogramowanie.var
oznacza zmienne pliki systemowe. Dlatego twoje aplikacje powinny przejść do/opt
.źródło
/var
dotyczy różnych plików systemowych, a nie „różnych”./var
dlatego, że dotyczy „różnych danych”. Nadal mam notatki z przeczytanej wcześniej książki internetowej.To zależy od twojego lokalnego standardu.
Osobiście nie instaluję niczego w / var bez uzasadnionego powodu. Mój / usr / local prawie zawsze jest montowany przez nfs z sieci, więc wszystko, co nie jest spakowane, instaluje się w / opt.
źródło
/usr
. Dynamicznie generowane libs może skończyć się/var/lib
od czasu do czasu, ale nie widzę, co można faktycznie zainstalować w/var
, z punktu widzenia administratora. Program może go intensywnie wykorzystywać, ale powinien być całkiem pusty przed uruchomieniem programu.