Autor: Kamil Porembiński - http://thecamels.org/ 1. Pierwszym krokiem jest samo ściągnięcie źródeł. Najwięcej ich można znaleźć na sourceforge.net. Kiedy już mamy plik ze źródłami a najczęściej ma on postać nazwa_programu.tar.gz skopjujmy go do folderu /usr/src. Być może do zapisu w tym katalogu będą nam potrzebne prawa roota. W tym miejscu najlepiej jest przechowywać żródła programów. Posiadany przez nas pliki jest archiwum, które przechowuje źródła programu. Należy je rozpakować poleceniem: (możemy również użyć graficznych programów jak ark czy file-roller tar -xvzf nazwa_programu.tar.gz Opis przełączników dla tar: x - oznacza, żeby dany plik został rozpakowany v - pokaże nam listę plików i szczegóły z - filtrowanie pakietów przez gzip f - oznacza, że plik archiwum jest plikiem lokalnym
2. W wyniku powyższych operacji otrzymaliśmy katalog, w którym znajdują się źródła programu, licencjie oraz pliki informujące jak dany program skompilować i zainstalować. Najczęściej jest to plik INSTALL lub README. Typowa kompilacja rozpoczyna się od wydania polecenia w katalogu ze źródłami: ./configure Jest to prosty skrypt, który sprawdza nasz system pod względem, czy posiada on potrzebne programy lub biblioteki do skompilowania naszych źródeł. Wygląda on mniej więcej tak: checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for awk... awk checking whether make sets $(MAKE)... yes checking for gcc... gcc checking for C compiler default output... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no Bardzo często zdarza się, że configure zatrzyma się w pewnym momencie i pokarze listę błędów, które uniemożliwiają nam skompilowanie programu: checking for libgnutls-config... no checking for libgnutls - version >= 1.0.0... no *** The libgnutls-config script installed by LIBGNUTLS could not be found *** If LIBGNUTLS was installed in PREFIX, make sure PREFIX/bin is in *** your path, or set the LIBGNUTLS_CONFIG environment variable to the *** full path to libgnutls-config. configure: WARNING: *** *** libgnutls was not found. You may want to get it from *** ftp://ftp.gnutls.org/pub/gnutls/ Jak widać powyżej brakuje nam biblioteki libgnutls w wersji większej lub równej 1.0.0. Configure również pokazało, gdzie należy szukać podanych plików. Po zainstalowaniu biblioteki odpalamy jeszcze raz configure i czytamy rezultaty. Być może teraz znajdzie brak innych plików, więc będzie trzeba je doinstalować. Jeśli wszystko pójdzie dobrze powinniśmy otrzymać komunikat w stylu:
Good - your configure finished. Start make now 3. Kompilacja. Sama kompilacja ogranicza się do wydania polecenia make Rezultatem jego działania jest szereg linijek niezrozumiałego tekstu: if gcc -DHAVE_CONFIG_H -I. -I. -I.. -DSYSCONFDIR=\"/usr/local/etc\" -DDATADIR=\"/usr/local/share/ekg2\" -DPLUGINDIR=\"/usr/local/lib/ekg2/plugins\" -I../libltdl -g -O2 -Wall -MT protocol.o -MD -MP -MF ".deps/protocol.Tpo" \ -c -o protocol.o `test -f 'protocol.c' || echo './'`protocol.c; \ then mv -f ".deps/protocol.Tpo" ".deps/protocol.Po"; \ else rm -f ".deps/protocol.Tpo"; exit 1; \ fi if gcc -DHAVE_CONFIG_H -I. -I. -I.. -DSYSCONFDIR=\"/usr/local/etc\" -DDATADIR=\"/usr/local/share/ekg2\" -DPLUGINDIR=\"/usr/local/lib/ekg2/plugins\" -I../libltdl -g -O2 -Wall -MT sessions.o -MD -MP -MF ".deps/sessions.Tpo" \ -c -o sessions.o `test -f 'sessions.c' || echo './'`sessions.c; \ then mv -f ".deps/sessions.Tpo" ".deps/sessions.Po"; \ else rm -f ".deps/sessions.Tpo"; exit 1; \ Z reguły kompilacja kończy się następująco:
make[2]: Nie nic do roboty w `all-am'. make[2]: Leaving directory `/usr/src/ekg2-20050812' make[1]: Leaving directory `/usr/src/ekg2-20050812' Nasz program jest skompilowany. Czas go zainstalować.
4. Instalacja skompilowanych źródeł musi odbywać się z poziomu root dlatego w konsoli wydajemy polecenie su i podajemy hasło administratora. Teraz możemy wydać polecenie:
make install Teraz system kopjuje odpowiednie pliki binarne do katalogów systemu. Po całej tej operacji wystarczy w konsoli napisać nazwę programu i się on uruchomi.
5. Jeśli program się nam znudzi i chcemy go usunąć to wystarczy wejść do katalogu ze źródłem programu (domyślnie /usr/src/nazwa_programu) i jako root wydajemy polecenie make uninstall To jest jedna z przyczyn, dla których warto trzymać źródła w jednym miejscu.
Liczba komentarzy (1) - Dodaj swój komentarz do tego artykułu... |