Czy istnieje sposób konkretnej instalacji w ścieżce / usr / local przy użyciu apt-get? Używam Linux Mint 16 i chcę zainstalować niektóre biblioteki na tej ścieżce. Wszystkie moje zainstalowane biblioteki są zainstalowane w / usr / i tylko niektóre z nich są dostępne w / usr / local
Udało mi się zainstalować bibliotekę boost za pomocą pliku tar.gz, ale czy można to zrobić za pomocą apt-get install?
/usr/local
jest lepszy od/usr
?Odpowiedzi:
Nie powinno być żadnego sposobu, aby to zrobić, zobacz ta odpowiedź
To dlatego, że Standard hierarchii systemu plików wyraźnie zastrzega
/usr/local/
dla programu i danych używanych w całym systemie, ale zainstalowanych lokalnie przez administratora systemu. Poświęć trochę czasu na przeczytanie FHS (które również zawierają uzasadnienie).BT, często nie możesz przenieść pliku binarnego i powiązanych danych, ponieważ większość programów zawiera wbudowane ścieżki plików. W praktyce, aby je zainstalować
/usr/local/
zazwyczaj będziesz musiał je ponownie skonfigurować i ponownie skompilować.Więc
.deb
plik instalacyjny pakietu pod/usr/local/
byłoby sprzeczne z konwencjami i standardami.źródło
/usr/local/
prefiks (jeśli nie dajesz żadnego)configure
). Ale dystrybucją jest pakowanie, a potem/usr/
prefiks (tjconfigure
z nimi--prefix=/usr/
...)/usr/local
.Nie i nie powinieneś tego potrzebować.
Cel
/usr/local
ma odróżnić oprogramowanie, które zostało skompilowane i zainstalowany przez lokalny administrator z oprogramowania dystrybuowanego wraz z systemem (to znaczy oprogramowania, które można zainstalować za pośrednictwemapt-get
).Instalując niepakowane oprogramowanie na
/usr
ryzykujesz konfliktami, które mogą nawet spowodować awarię pakietów systemowych bez wyraźnego powodu (np. jeśli nadpiszesz bibliotekę nowszą wersją lub niekompatybilną kompilacją).Opiekunowie pakietów muszą wykonać dużo dodatkowej pracy podczas kompilowania pakietu, aby zapewnić jego bezbłędne działanie przy każdej instalacji i niezależnie od tego, jakie inne pakiety są zainstalowane. Jest to możliwe tylko wtedy, gdy mogą zajrzeć do repozytorium pakietów i znać każdy inny pakiet, który mógłby zostać potencjalnie zainstalowany. (W praktyce mogą dotyczyć tylko niewielkiego podzbioru pakietów, na przykład biblioteki narzędziowej libc i bibliotek SDL).
Kompilowanie pakietów samodzielnie jest (dla porównania) szybkie i luźne: nie zależy Ci na maksymalizacji przenośności; po prostu chcesz zbudować i pracować na twojej maszynie. Nie obchodzi cię, czy są niezgodności z rzeczami pod
/usr
, ponieważ nie zostanie nadpisany, a Ty możesz zainstalować niekompatybilny duplikat dowolnej biblioteki, o ile pozostaniesz pod/usr/local
. Możesz nawet mieć bardzo specyficzne wymagania (np. Skorzystanie ze specyficznego zestawu instrukcji maszyny dla zwiększenia wydajności), które nie dotyczą innych użytkowników twojej dystrybucji Linuksa. A jeśli jest niekompatybilny z jakimś innym oprogramowaniem, którego jeszcze nie zainstalowałeś, poradzisz sobie z tym, próbując zainstalować nowe oprogramowanie, nie wcześniej.źródło
/usr/local
, jednocześnie chroniąc stabilność/usr
, instalując każdy w wyjątkowym miejscu pod/opt/<vendor-name>
lub/opt/<stack-name>
.