Konfigurowanie twojej kompilacji
Jeśli masz kod źródłowy, który jest kompilowany przez uruchomienie ./configure
i make
, zwykle użyjesz make install
(lub sudo make install
), aby go zainstalować. Spowoduje to skopiowanie plików z katalogu kompilacji do lokalizacji instalacji. Gdy instalowana rzecz zawiera komendy wykonywalne, te pliki wykonywalne są zwykle kopiowane do katalogu, który znajduje się w $PATH
lub do którego należy rozważyć dodanie
$PATH
.
Chociaż budowanie i instalowanie oprogramowania jest często tak proste, jak uruchamianie ./configure
, make
czasami make check
lub make test
, a następnie make install
lub sudo make install
, czasami będziesz chciał przekazać opcje do configure
skryptu, aby skonfigurować kompilację. W szczególności, jak mówi pfnuesel , w ten sposób konfigurujesz
miejsce instalacji oprogramowania. Chociaż make install
krok faktycznie instaluje oprogramowanie, lokalizacje, w których wszystko zostanie zainstalowane, są zwykle ustalane na tym
./configure
etapie.
Najczęstszą opcją jest to --prefix
. Domyślny prefiks, gdy nie configure
wiesz, czego użyć, to zwykle /usr/local
. (Czasami kod źródłowy programu lub biblioteki ma domyślnie inny prefiks. Na szczęście jest to rzadkie.)
Tak ./configure
jest zazwyczaj równoważne ./configure --prefix=/usr/local
. Aby zainstalować oprogramowanie w katalogu domowym, możesz użyć ./configure --prefix=/home/galahad
(jeśli /home/galahad
jest to katalog domowy) lub --prefix="$HOME"
. Oczywiście nadal musisz zbudować i zainstalować oprogramowanie make
. Powinienem powiedzieć, że nie całe oprogramowanie dystrybuowane w postaci kodu źródłowego jest zbudowane w ten sposób. Zawsze należy szukać dokumentacji w rozpakowanym archiwum kodu źródłowego.
Co to --prefix
znaczy
Po uruchomieniu wskazujesz, że oprogramowanie powinno zostać zainstalowane w
katalogu. Ale to rzadko, jeśli w ogóle, umieszcza luźne pliki . Zamiast tego umieszcza pliki, które służą różnym celom, w różnych podkatalogach . Jeśli te podkatalogi nie istnieją, tworzy je../configure --prefix=directory
directory
directory
directory
Pliki wykonywalne zwykle wchodzą directory/bin
, ale mogą się pojawiać, directory/sbin
jeśli są powszechnie używane do administrowania systemem lub mogą (w rzadszych przypadkach obecnie) wchodzić w
directory/games
gry. Biblioteki wchodzą do
directory/lib
innego katalogu o podobnej nazwie, np
directory/lib32
. Pliki nagłówka wchodzą
directory/include
. Wchodzą strony podręcznika
directory/man
. Pliki danych używane przez oprogramowanie wchodzą
directory/share
.
To właśnie znaczy directory
być prefiksem . Jest to katalog nadrzędny zawierający lokalizacje, w których zostaną zainstalowane różne pliki. Dlatego pojawia się jako przedrostek w bezwzględnych ścieżkach większości plików i katalogów utworzonych przez uruchomienie make install
lub sudo make install
.
Istnieją pewne wyjątki od tego. Systemowe pliki konfiguracyjne - które są czasami tworzone podczas instalacji oprogramowania, które będą ich używać, choć nie zawsze - zwykle wchodzą /etc
. Zazwyczaj nie ma na to wpływu określenie innego prefiksu. Nawet jeśli zainstalujesz dużo oprogramowania /usr/local
, nadal będzie ono w większości używane
/etc
, a twój /usr/local/etc
katalog prawdopodobnie nie będzie istniał, będzie pusty lub będzie zawierał bardzo mało plików.
W wielu systemach można znaleźć więcej informacji o typowym układzie systemu plików, uruchamiając man hier
. Jeśli korzystasz z systemu GNU / Linux, możesz zainteresować się standardem hierarchii systemów plików .