Jest serwer, nad którym pracuję, ze starszą wersją Linuksa. Nie mam dostępu do systemu root, więc chciałem zbudować nowszą wersję narzędzia, z którego często korzystam (Vim 7.3). Pomyślałem, że po prostu go zbuduję i zainstaluję w ~ / bin. Wymaga to jednak plików programistycznych ncurses, które nie są instalowane w całym systemie. Znalazłem ncurses-devel rpm i wyodrębniłem foldery „lib” i „include”, gdzie je umieściłem i jak mam powiedzieć skryptowi ./configure, aby je znalazł, abym mógł poprawnie skonfigurować i zbudować pakiet lokalnie?
Edycja: W końcu obejrzałem ten problem, instalując identyczny system operacyjny w Virtualbox, budując tam pakiet i kopiując pliki binarne.
Odpowiedzi:
Robiłem to dość często w mojej ostatniej pracy - rozwiązaniem, które wydawało się działać najlepiej, było utworzenie katalogu ~ / usr i użycie argumentu --prefix, aby skierować skrypty ./configure we właściwym kierunku. Oto kroki:
./configure --prefix=/home/<username>/usr
Ten układ działał dla mnie w większości sytuacji, w których musiałem budować rzeczy w przestrzeni użytkownika. Najtrudniejsze jest zwykle znalezienie i zbudowanie wszystkich potrzebnych zależności, ale to wymaga jedynie googlingu lub rozsądnego użycia funkcji „get source” menedżera pakietów.
źródło
${HOME}
zamiast~
wszystkich moich wywołań eksportu, a potem pkg-config był szczęśliwy i mógł znaleźć biblioteki i pakiety zainstalowane przez użytkownika.Zwykle powinieneś być w stanie ponownie skonfigurować i zmienić kod, aby zdefiniować nową lokalizację w katalogu domowym lub inną ścieżkę dla wszystkich bibliotek i programów ...
Ale, IMHO, najłatwiejszym sposobem (jeśli masz dużo miejsca) jest użycie chroota w podkatalogu z zainstalowanym wszystkimi dystrybucjami Linuksa. Oczywiście jako zwykły użytkownik nie możesz używać chroota , ale możesz użyć tych wspaniałych narzędzi: fakechroot i fakeroot
Aby utworzyć system plików chroot, lubię wdrożyć katalog z Debianem (lub dowolnym pochodnym Debiana, takim jak ubuntu) za pomocą narzędzia debootstrap .
Procedura jest więc łatwa (nie wprowadzę szczegółów technicznych, przeczytaj instrukcje obsługi):
Jeśli potrzebujesz więcej szczegółów, myślę, że miałem gdzieś skrypt, aby to wszystko zrobić.
źródło
Innym rozwiązaniem tego problemu jest użycie prefiksu Gentoo, ponieważ użytkownicy MacOSX i innej platformy (solaris, AIX):
http://www.gentoo.org/proj/en/gentoo-alt/prefix/
Skompiluje stos Gentoo (z portage) w lokalizacji $ PREFIX. Korzysta z pakietów Gentoo, większość pakietów obsługuje użycie tych ustawień.
Portage będzie śledził wszystkie zależności, będziesz mieć ostatnią wersję oprogramowania, została przetestowana przez społeczność ...
źródło
Jeśli
prefix=/home/foo/usr
nie działa, spróbuj:źródło