Chcę wykonać następujące czynności:
Stwórz z projektu open source kompilację / link do bibliotek itp. Nie chcę jednak uruchamiać tego lokalnie. Chcę go spakować do rpm, aby można go było zainstalować w odpowiednich katalogach na innych komputerach (co oczywiście miałoby podobną architekturę). Chcę, aby kompilował się i łączył oraz tworzył dowiązania symboliczne tak, jakby miał być instalowany w katalogu / usr / local, ale tak naprawdę nie chcę, żeby to trafiało do katalogu w / usr / local / ale do jakiegoś katalogu tymczasowego zostać wymazane bez usuwania plików umieszczonych tam przez inne pakiety.
Czy istnieje jakiś parametr, dzięki któremu instalacja mogłaby się zdarzyć - jest budowana tak, jakby miała być zainstalowana w /usr/local
ale faktycznie umieść „instalację” pod ~/tmp/usr/local
, na przykład.
Szukałem po prostu NIE uruchamiaj make install, ale zatrzymaj się na make, ale to przenika pliki wykonywalne, kod obiektowy i biblioteki w katalogu źródłowym.
stow
zarządzać moim/usr/local
).Odpowiedzi:
Odpowiedź na to pytanie zależy od tego, który projekt open source próbujesz zainstalować w ten sposób. Ogólna odpowiedź brzmi, że niektóre projekty open source mają pliki Makefile, które udostępniają opcjonalne zmienne do tego celu. Jednym z konkretnych przykładów jest gdb, którego najwyższy poziom Makefile używa (ale wydaje się, że nie przypisuje)
DESTDIR
zmienna i jeśli uruchomię to polecenie w katalogu budowania gdb,to poprzedza
/tmp
do każdej ścieżki docelowej przed skopiowaniem pliku.Innym trudniejszym podejściem jest wykonanie całej kompilacji, instalacji i wszystkich, w środowisku chroot. Używam czegoś takiego OverlayFS może to ułatwić, ale zazwyczaj nie jest to ścieżka najmniejszego oporu.
Inną możliwością, która jest prawdopodobnie łatwiejsza, jeśli już używasz smaku Debiana (który obejmuje Ubuntu wśród wielu innych), jest pobranie pakietu źródłowego Debiana odpowiadającego projektowi open source (takie podejście jest mało prawdopodobne, jeśli nie ma taki pakiet źródłowy) i postępuj zgodnie z instrukcjami, aby zbudować pakiet Debiana z tego źródła. Jeśli naprawdę potrzebujesz
.rpm
zamiast a.deb
możesz przekonwertować.deb
do a.rpm
, a może możesz skonstruować.rpm
ze struktury katalogu pozostawionej w procesie budowania.deb
. Ta odpowiedź jest jednym ze źródeł informacji o budowaniu pakietu Debiana ze źródła.Na ostatni
openssl
(wymieniony w komentarzu, ale jeszcze nie wymieniony w pytaniu) ZAINSTALOWAĆ plik mówi tak:To zależy od różnych wersji
openssl
; dla 1.0.2 ZAINSTALOWAĆ mówi to:Pomysł jest bardzo podobny, z nieco innymi szczegółami.
źródło
INSTALL_PREFIX
zanim znalazłemDESTDIR
i początkowo znalazłem go w pliku Makefile (ze źródeł Debiana), a nie z dokumentacji. Szukałem źródeł github, ponieważ chciałem się upewnić, że Debian nie dodałINSTALL_PREFIX
, w którym zauważyłem zmianę nazwy. Podejście Debiana eliminuje (lub może ukrywa) takie wariacje dla dowolnego pakietu źródłowego dostarczanego przez dystrybucję, zapewniając jednolity sposób budowania pakietów ze źródła.make
? Nie codziennie, ale dobre dni.