make install
robi wszystko, co Makefile
chce autor. Zazwyczaj w tym momencie jest już za późno na zmianę katalogu instalacyjnego, jak to często wiadomo wcześniej podczas kompilacji, więc do plików pomocy i plików konfiguracyjnych można odwoływać się za pomocą poprawnych nazw ścieżek.
Wiele projektów korzysta z GNU Autotools w celu poprawy ich przenośności między różnicami sprzętowymi i systemowymi. (Różne warianty Uniksa używają nieco innych nagłówków do deklaracji funkcji, które są nieco poza zwykłą ścieżką - z wyjątkiem większości programów, które wymagają jednego lub drugiego z tych zadeklarowanych w różnych lokalizacjach.)
Kiedy projekt korzysta z Autotools, normalną mantrą do instalacji jest:
./configure
make
make install
./configure
Zazwyczaj pozwala na użycie opcji wiersza polecenia podobnego --prefix /opt/apache
lub coś podobnego, aby określić inną ścieżkę. /usr/local/
jest częstym domyślnym prefix
. Lokalnie zbudowane oprogramowanie jest o wiele łatwiejsze do zamieszkania w jednym miejscu, a oprogramowanie dostarczane przez dystrybucję do życia w „głównych katalogach”: /usr/
/bin/
i tak dalej. (Pakowacze są bardzo ostrożni, aby nigdy nie dotykać plików /usr/local/
- wiedzą, że jest to wyłącznie dla administratorów systemu).
W każdym razie, ./configure --prefix /path/to/new/prefix
ustawi zmienną, Makefile
która jest dostępna podczas kompilacji programu, modyfikując strony podręcznika, aby wskazywały prawidłowe lokalizacje plików, modyfikując pliki konfiguracyjne itp. Więc make
zbuduje oprogramowanie specjalnie dla żądanej lokalizacji instalacji i make install
zainstaluje go w tej lokalizacji.
Większość programów może działać nawet bez ostatniego make install
kroku - po prostu ./program_name
często je uruchamiają. Jest to z pewnością rzecz per-projektu - niektóre, jak postfix
, qmail
itp, składają się z wielu ruchomych elementów i opierają się na nich wszystkich razem pracować. Inne, takie jak ls
lub su
mogą być wystarczająco samodzielne, aby dobrze wykonać z katalogu, w którym zostały wbudowane. (To nie jest często przydatne - ale czasami bardzo przydatne).
Jednak nie wszystkie projekty używają Autotools - są ogromne , skomplikowane i nieszczęśliwe w utrzymaniu. Odręczne pisanie Makefile
jest znacznie prostsze do napisania, a ja osobiście uważam, że dystrybucja prostej Makefile
z dostępnymi zmiennymi konfiguracyjnymi jest o wiele łatwiejsza zarówno dla programistów, jak i użytkowników. (Chociaż ./configure ; make ; make install
mantra jest naprawdę łatwa dla użytkowników, gdy działa).
make install
krokami z punktu widzenia programisty.