Rozumiem, że w systemach Windows, Linux i Unix program | aplikacja | oprogramowanie może być zainstalowany w dowolnym katalogu. Również jeśli pakiety są instalowane przy użyciu systemu pakowania dystrybucji, pliki zostaną umieszczone we właściwej lokalizacji.
Ale czasami instalacja oprogramowania monituje o ścieżkę do umieszczania plików. W przypadku dystrybucji Linuksa, gdzie jest to domyślne miejsce ( C:\Program Files
lub C:\progra~1
odpowiednik)? Czy jest inaczej dla różnych dystrybucji? Jeśli tak, to gdzie będzie to dla RHEL
, Suse
i Ubuntu
?
Nie ma bezpośredniego odpowiednika. Struktura katalogów jest bardzo różna. W systemie Windows masz jeden katalog dla każdego zainstalowanego pakietu / oprogramowania, który zawiera wszystkie pliki związane (np
C:\Program Files\MyProgram
.). W systemie Linux każde oprogramowanie jest „rozproszone” w wielu katalogach zgodnie z typem pliku i innymi zasadami.Jako przykład możemy zbadać, gdzie
xscreensaver
instalowane są różne pliki związane z programem:Nie martw się, zazwyczaj, gdy instalator pyta gdzie zainstalować, poprawna odpowiedź jest jedną z następujących czynności:
/
,/opt
,/usr
,/usr/local
Jak widać, całkiem wszystkie (1) pliki
xscreensaver
są instalowane/usr
zgodnie z prostą zasadą: pliki wykonywalne w/usr/bin
, strony podręcznika w/usr/share/man
, dokumentacja w/usr/share/doc/packages/PROGRAMNAME
itd.Kiedy instalator prosi o instalację
prefix
, zwykle chce teraz podstawową ścieżkę, pod którą należy zainstalować program. W moimxscreensaver
przykładzie tak jest/usr
.Jako prosta zasada:
/
powinien zawierać tylko program potrzebny do uruchomienia systemu (asC:\windows\system32
),/usr/local
powinien zawierać programy potrzebne tylko na tym unikalnym komputerze,/opt
(2) wszystkie programy opcjonalne , które mają niestandardową strukturę katalogów i/usr
całe standardowe oprogramowanie .W każdym razie istnieje standard, który szczegółowo określa wszystkie te reguły: Standard systemu plików
(1) Pliki konfiguracyjne dla całego systemu muszą znajdować się w
/etc
(2) dość przestarzałe pod Linuksem
źródło
/opt
jest preferowane w przypadku oprogramowania innych firm/usr/local
od dłuższego czasu./usr/share
nazywa się „udostępnij”, ponieważ jest dzielone między różnymi architekturami (dokumentacja, skrypty, obrazy), podczas gdy/usr/lib*
dotyczy plików zależnych od architektury (a nie plików wykonywalnych, które/usr/bin
).Ususually,
/bin
,/usr/bin
,/usr/local/bin
, lub/opt/bin
. Myślę, że/usr/bin
i/opt/bin
są najbliżej Program Files, ponieważ zwykle są one dla niezarejestrowanych krytycznych binariów systemowych, które są instalowane przez administratora systemu, choć w przeciwieństwie do okien oba te zawierają programy zainstalowane w menedżerze pakietów. Gdzie/usr/local/bin
jest dla oprogramowania niepakowanego w dystrybucji./bin
jest przeznaczony do krytycznych dla systemu plików binarnych, takich jak/bin/sh
.źródło
/bin
,/usr/bin
,/usr/local/bin
Lub/opt/bin
. Czy nie ma jednej standardowej lokalizacji? Powodem, dla którego pytam, jest to, że instaluję oprogramowanie na kilku maszynach wirtualnych, a domyślna lokalizacja zajmuje miejsce, na którym kiedykolwiek partycja ma najwięcej miejsca. Chcę zmienić przestrzeń partycji na katalog, do którego zazwyczaj przechodzi oprogramowanie i nie umieszczam oprogramowania inaczej we wszystkich maszynach wirtualnych./opt
na przykład jest zwykle używany w oprogramowaniu prawnie zastrzeżonym./usr/
jest oddzielną partycją./bin
i/usr/bin
dyskryminacja jest przestarzały teraz; Historycznie rzecz biorąc, układ krytyczne rzeczy byłoby/bin
,/lib
... (bezpośrednio w katalogu głównym), natomiast/usr
(z/usr/bin
,/usr/lib
...) zostaną zamontowane później (być może za pośrednictwem sieci), nie jest to konieczne dla podstawowej funkcjonalności systemu./opt
nie powinien wyjść. W przeszłości niektórzy sądzili, że dobrym pomysłem jest posiadanie niektórych aplikacji w innym miejscu niż wszystkie inne aplikacje./bin
jest na partycji root. Ponieważ w niektórych systemach przestrzeń na partycji głównej jest ograniczona, przeniesiono do niej nieistotne pliki binarne (tj. Wszystkie aplikacje użytkownika)/usr/bin
.Spójrz na
man hier
to „Opis hierarchii systemu plików”.źródło
Jak zauważyli inni, programy zainstalowane za pomocą menedżera pakietów są rozproszone w kilku katalogach. Podczas gdy zwykle znajduje się plik binarny
/usr/bin
, dostępne są systemowe pliki konfiguracyjne/etc
i tak dalej.Jeśli aplikacja nie zostanie zainstalowana za pomocą menedżera pakietów, pliki powinny zostać zainstalowane w miejscu, w którym nie będą kolidować z menedżerem pakietów. To miejsce jest
/usr/local
.Jeśli zostaniesz poproszony o podanie ścieżki instalacji, najczęstszym wyborem będzie
/usr/local/appname
źródło
Wpisz
echo $PATH
swój terminal, aby zobaczyć ścieżki, w których powłoka będzie szukać polecenia. Sprawdza plik w kolejności, w jakiej jest drukowany.źródło
No nie znajdziesz wszystkie rozwiązania
/bin
isbin
dlatego trzymają głównie poleceń systemowych (czyli poleceń używanych przez system)./usr/bin
idealnie można go nazwać"Program Files"
światem unix. Jeśli chodzi o/opt
bardzo niewiele pakietów, wybierz tę lokalizację do instalacji, to samo dotyczy pakietów używających/etc/
lub/var
jako lokalizacjiźródło