Jakie są „standardy” - czy powinienem umieścić aplikację (nie tylko binarną, ale całą dystrybucję) w / usr / local lub / usr / local / share.
Na przykład scala lub weka - zawiera przykłady, pliki binarne, biblioteki i tak dalej. Tak by było
/usr/local/scala-2.9.1
lub
/usr/local/share/scala-2.9.1
Ponieważ jestem jedynym administratorem, nie jest to dla mnie wielka sprawa, ale wolę używać czegoś, co jest powszechnie używane, a nie własnych obyczajów.
Ważne: nie pytam o przypadki, w których powinieneś podzielić aplikację na / usr / local / bin, / usr / local / lib i tak dalej. Pytam raczej o przypadek, w którym musisz zachować jeden katalog główny dla całej aplikacji.
software-installation
directory-structure
application
Greenoldman
źródło
źródło
/opt
jest rzeczywiście dobrym rozwiązaniem, ale to nie „powszechnie używane” przez tradycyjnego oprogramowania Unix / Linux. Istnieją świetne powody, aby podzielić pliki na wiele katalogów, a także odróżnić je/usr
od/usr/local
/usr/bin
(lub/usr/local/bin
) pozwala $ PATH na dostęp do całego oprogramowania bez konieczności edytowania go dla każdego oprogramowania, koncepcja, która nie istnieje w systemie WindowsOdpowiedzi:
Myślę, że / opt jest bardziej standardowy w tego rodzaju kontekście. Odpowiednia sekcja Standardu hierarchii systemu plików jest cytowana poniżej.
źródło
Powinieneś używać tylko
/usr/local/share
do plików, które nie są specyficzne dla konkretnej wersji architektury / systemu operacyjnego.Potem to zależy od ciebie czy rozpowszechniać pliki pomiędzy istniejących podkatalogów
/usr/local
lub jeśli utworzyć nowy katalog w dedykowany/usr/local
(choć ta ostatnia wola nie istnieje już na wykonywalnyPATH
TheLD_LIBRARY_PATH
aniMANPATH
).Spójrz na FHS
źródło
bin
,share
,lib
, etcAż
/opt
stało się powszechne, zwykłym miejscem było/usr/local/lib/<package>
.źródło
Podczas instalowania aplikacji lokalnych istnieje wiele opcji w zależności od tego, jak chcesz uzyskać dostęp i aktualizację. Należy również zauważyć, że niektóre metody przypominają system, który już masz, a niektóre są bardziej ad-hoc. Sugerowałbym, że „najlepsze” rozwiązania ułatwiają zarządzanie.
Podzieliłem tę odpowiedź na podstawie liczby pakietów, dla których zostaną wykonane niestandardowe instalacje. Podział opiera się na moich własnych doświadczeniach. Te doświadczenia ważą czas potrzebny na zarządzanie paczkami oraz ryzyko związane z popsuciem czegoś. Nie chodzi mi o to, że mam wiedzę o wspólnych standardach, ale mam na myśli ten punkt odniesienia, na który należy zwrócić uwagę przy podejmowaniu decyzji.
Tylko dla kilku pakietów chciałbym umieścić dodatkowe pakiety
/opt
których nie są w stanie przeszkodzić wszystkim innym, więc nic nie może ich zepsuć i mogą zepsuć coś innego. Jest to metoda, której używam na moim serwerze NAS. Ta metoda jednak chroni pliki binarne od ŚCIEŻKI, więc musisz dodać je ręcznie. Działa to dobrze, jeśli jest tylko kilka pakietów do zainstalowania, ale staje się dość bałaganem, jeśli jest ich wiele.Aktualizacja tutaj jest dość prosta, ponieważ po prostu nadpisujesz katalog.
Plusy:
Cons:
PATH
wygląd MessyW przypadku więcej niż kilku pakietów polecam użycie
/usr/local/<your package>
i sym-linkowanie pliku wykonywalnego z/usr/local/bin
lub w/usr/local/sbin
zależności od tego, czy potrzebujesz uprawnień roota. Dzięki temu nie musisz zmieniać ŚCIEŻKI za każdym razem, gdy dodaje się coś nowego, aby ŚCIEŻKA pozostała czysta. Jest to metoda, której używam na moim laptopie Arch do wszystkich pakietów innych niż pacman i pakietów AUR.Aktualizacja odbywa się poprzez zastąpienie katalogu pakietu i sprawdzenie, czy dowiązanie symboliczne jest nadal poprawne, i naprawienie, jeśli nie jest.
Plusy
PATH
bałaganuCons:
Dla wielu paczek . Ponieważ nie jest to przypadek, którego chcesz, przedstawię to krótko. Polecam podział pakietu w
bin
,lib
,share
, itd. I ich instalację/usr/local
. Ma to na celu utrzymanie struktury w czystości. Możesz także określić, kto może pisać gdzie i więcej. Na przykład nie chcesz, aby ludzie inni niż root modyfikowali plik wykonywalny.Tutaj aktualizacja staje się nieco trudniejsza, ponieważ musisz pisać do więcej niż jednego katalogu. Poleciłbym spakowanie całości i pozwolenie kierownikowi paczki zająć się resztą.
Udział
share
Sam katalog jest dla architektury niezależnych plików jak zauważono w Faheem za linkiem i plików zależy od architektury powinien udać się dolib
,lib32
,lib64
, itd.źródło