zainstaluj w / usr / local / using apt-get

0

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?

user166289
źródło
Poza przynależnością do SU, jest to również duplikat to pytanie .
rubenvb
Dlatego nie otrzymałem tutaj odpowiedzi. Przepraszam za problem?
user166289
Żaden kłopot. StackExchange działa w ten sposób. Nie martw się, że Twoje pytanie zostanie zamknięte jako duplikat (jeśli jest zamknięte). To wszystko na lepsze i pozwala ludziom szybciej znaleźć to, czego potrzebują.
rubenvb
@ user166289 Jaki problem chcesz rozwiązać? Dlaczego w to wierzysz? /usr/local jest lepszy od /usr?
jpaugh

Odpowiedzi:

3

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.

Basile Starynkevitch
źródło
Nie rozumiem tego. Czy nie jestem administratorem mojego komputera?
zneak
Następnie skompiluj oprogramowanie z kodu źródłowego.
Basile Starynkevitch
1
Nie kwestionuję wyniku końcowego, ale w świetle twojej odpowiedzi, czy powinno to oznaczać, że Standard hierarchii systemu plików powoduje różnicę między „zainstalowanym przez apt-get” a „zainstalowanym przez make install”?
zneak
Tak. Większość oprogramowania GNU instaluje się domyślnie z /usr/local/ prefiks (jeśli nie dajesz żadnego) configure ). Ale dystrybucją jest pakowanie, a potem /usr/ prefiks (tj configure z nimi --prefix=/usr/ ...)
Basile Starynkevitch
1
@zneak Nie rozróżnia się, kto instaluje oprogramowanie, ale kto kompiluje to. Jest to bardziej użyteczne wyróżnienie, częściowo dlatego, że opiekunowie pakietów muszą przeskakiwać wiele przeszkód, aby upewnić się, że ich oprogramowanie instaluje się i działa poprawnie każdy system. Jeśli zainstalujesz nieopakowane oprogramowanie w tej samej lokalizacji, potencjalnie mogą wystąpić konflikty z pakietami systemowymi, które w przeciwnym razie powinny działać, a tracisz swobodę kompilowania oprogramowania, jak chcesz /usr/local.
jpaugh
1

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średnictwem apt-get ).

Instalując niepakowane oprogramowanie na /usrryzykujesz 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.

jpaugh
źródło
Uwaga dodatkowa: Kiedy instalujesz cały stos pakietów w określonym celu lub instalujesz cokolwiek od zewnętrznego dostawcy, powszechną praktyką jest izolowanie ich od ewentualnego bałaganu pod /usr/local, jednocześnie chroniąc stabilność /usr, instalując każdy w wyjątkowym miejscu pod /opt/<vendor-name> lub /opt/<stack-name>.
jpaugh