Właściwa procedura instalacji w / usr / local?

3

Wczoraj pobrałem aplikację o nazwie mvPod tarball .

Miałem wrażenie, że jeśli mam jakieś programy nie zainstalowane przez menedżera pakietów, należą one do /usr/local zamiast /usr. Ale jeśli umieścisz plik wykonywalny /usr/local/bini pliki jar do /usr/local/lib, Dostaję błędy czasu wykonywania dotyczące braku możliwości załadowania klas Java. Więc uciekłem się do wprowadzania rzeczy /usr/bin i /usr/lib i działało dobrze.

Czy jest to coś, co można poprawić tylko przez inną kompilację, czy brakuje mi kroku instalacji?

Używam Ubuntu Karmic.

Owen
źródło

Odpowiedzi:

5

Wchodzi problem z instalacją dłoni /usr zamiast /usr/local czy to

  • nie będziesz od razu wiedział, jak coś zostało zainstalowane, co utrudnia później naprawianie problemów
  • jakiś pakiet może się zatrzasnąć część twojej instalacji lub odwrotnie (tylko część jest dużo gorzej niż wszyscy, zaufaj mi)

Powód a /usr/local instalacja nie działa prawie na pewno wiąże się z jakąś ścieżką wyszukiwania lub inną. Można je skonfigurować dla każdego programu wykonującego wyszukiwanie lub przechowywane w zmiennych środowiskowych lub często wykorzystują obie metody. W przypadku wszystkich typów programów będziesz chciał mieć pewność, że PATH, LD_LIBRARY_PATH, i MAN_PATH zmienne środowiskowe są aktualizowane. Java może obejmować CLASS_PATH lub coś podobnego. Być może otrzymasz bardziej szczegółową odpowiedź tutaj lub w ostateczności zawsze jest dokumentacja.


Inna sprawa: niektóre unixy oczekują lokalnych instalacji /opt zamiast /usr/local. Zawsze warto sprawdzić lokalną konwencję w tej sprawie.

dmckee
źródło
+1 do konfiguracji środowiska. wszystko po prostu zadziała, jeśli właściwie ustawi swoje ścieżki.
Justin Smith
Dzięki za informację! Takie rzeczy były moją pierwszą myślą (przed opublikowaniem tego pytania), ale byłem trochę wyłączony, że googling „LD_LIBRARY_PATH” najczęściej znajduje ludzi mówiących, że to hack. Wydaje się, że bardziej poprawne byłoby naprawienie tego w czasie, ale irytujące jest to, że rozproszone pliki binarne zostały utworzone ze „złymi” ścieżkami ...
Owen
@Owen: dynamiczny program ładujący ( ldd ) ma plik konfiguracyjny ( ld.so.conf zwykle w /etc hierarchia i zarządzana ldconfig ), aby powiedzieć, gdzie ma wyglądać globalnie: jeśli masz uprawnienia administratora, możesz naprawić że zamiast wygłupiać się swoimi osobistymi ścieżkami.
dmckee
1

Możesz użyć --prefix opcja z configure, make lub oba.

./configure --prefix = / usr

lub

make prefix = / usr install

To zostanie zainstalowane w /usr zamiast domyślnego /usr/local.

Studer
źródło