Czy w Linuksie jest standardowa lokalizacja do przechowywania plików źródłowych, na przykład OpenSSL . Buduję Nginx ze źródła z domyślną wersją OpenSSL. Muszę pobrać i rozpakować OpenSSL i zrobiłem to w katalogu domowym. Zastanawiam się, czy może istnieje standardowa lokalizacja w systemie Linux /opt
?
directory-structure
source
użytkownik3448600
źródło
źródło
Odpowiedzi:
Ilekroć zadajesz sobie takie pytanie, sprawdź Standard systemu plików Hierarchy Standard (FHS). Tam znajdziesz następujący wpis:
Możesz więc umieścić swoje pliki źródłowe w podkatalogach
/usr/src
. To powiedziawszy, jest to opcjonalny katalog, więc możesz naprawdę przechowywać je gdziekolwiek chcesz. Kod źródłowy nie jest istotny po skompilowaniu go w plik wykonywalny, więc system nigdy nie będzie wymagał, aby źródło czegoś było dostępne w określonej lokalizacji.Podsumowując:
/usr/src
jest to dość standardowa lokalizacja, ale możesz wybrać własną, jeśli wolisz.źródło
/usr/src
na brak systemu -linux. BSD domyślnie przechowują tam swoje podstawowe źródła systemowe i nie chcesz ich mieszać z oprogramowaniem innych firm. Po prostu$HOME
/usr/src
pochodnych Debiana, jeśli masz zainstalowane pewne pakiety (gcc-6-source
,binutils-source
pakiety DKMS, nagłówki jądra itp.). Na Debianie jest miła funkcja, w której możesz dodać siebie dosrc
grupy, która jest jej właścicielem/usr/src
, a następnie po prostu napisać ją jako siebie (bez potrzebysudo
lub czegokolwiek)./usr/src/debug
i/usr/src/kernels
(AFAICS)./usr
żadnego systemu. Powinieneś wkładać różne rzeczy/usr/local
. Czy używasz BSD/usr/local/src
?/usr/local/src
jest bezpiecznym miejscem do przechowywania kodu źródłowego i jego tworzenia. FHS mówi :i również
Nie jest jasne, co oznacza „lokalny kod źródłowy”, ale jasne jest, że system nie będzie próbował niczego umieszczać, w
/usr/local/src
przeciwieństwie do tego/usr/src
, więc wydaje się, że umieszczenie kodu jest niewielkie.W rzeczywistości mam mój w osobnym systemie plików:
Uwaga: przynajmniej w Debianie użytkownik musi zostać dodany do
staff
grupy, aby móc pisać/usr/local
.źródło
/usr/local/src
podczas gdy inne odpowiedzi tylko dyskutują/usr/src
/usr/local
(teoretycznie). Zasadniczo oznacza to dokładnie to, co opisałeś.Jeśli przez „standardowy” masz na myśli konwencjonalny, to miejscem do rozpakowania i zbudowania kodu źródłowego jest katalog domowy. Oczekuje się, że takie pliki będą przejściowe, usunięte po zakończeniu lub przechowywane, jeśli chcesz, uporządkowane według własnego uznania. Twój katalog domowy to Twój obszar do zabawy z tego rodzaju rzeczami.
Jeśli chcesz, aby zachować je potem, dla odniesienia , w „ Filesystem Hierarchy Standard ” zaleca
/usr/src
. Jest to jednak przewodnik, a nie prawo; a jeśli nauczysz się tego nawyku, a następnie zaryzykujesz na systemie innym niż Linux, możesz spowodować problemy, postępując zgodnie z nim. Na przykład w systemie BSD przechowywane są tam podstawowe źródła systemowe i naprawdę nie chcesz z nimi zadzierać. Nawet w systemie Linux może wystąpić ryzyko zmieszania się z dowolnym źródłem przechowywanym przez menedżerów pakietów, co nie jest pożądane.Polecam unikanie
/usr/src
ogólnie. Nie ma żadnych oczywistych korzyści z trzymania czegokolwiek i potencjalne ryzyko, jeśli pomylisz jego zamierzone znaczenie.źródło
Możesz użyć,
/usr/src
ponieważ to miejsce brzmi rozsądnie, a dystrybucje oparte na rpm używają go do przechowywania zawartości pakietów srpm. Ale jak każde inne miejsce/opt
,/usr/local
,~/src
jest dobreźródło