Linux w biznesie arrow Podstawy arrow Kompilacja dla początkujących
 
 
 

Warto odwiedzić


Odwiedziny


Reklama

Advertisement

Advertisement








Kompilacja dla początkujących PDF Drukuj Email
Oceny: / 0
KiepskiBardzo dobry 
11.01.2006.
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...

 
« poprzedni artykuł   następny artykuł »
Komentarze
manto1 napisał
dzień 02/19/2007 o 21:16

make uninstall
jeju, tego szukałem, hehe dzięki

 1 
Strona 1 z 1 ( 1 komentarze(y) )
Dodaj swój komentarz do tego artykułu...Kompilacja dla początkujących ...



Copyright © 2005 - 2006
www.comgroup.pl
Mandriva
Pisanie programów

Search Engine Optimization