Instalacja programów ze źródeł

Najbardziej uniwersalnym sposobem instalowania oprogramowania w Linuksie jest kompilacja ich ze źródeł udostępnianych przez autorów. Plusami takiego sposobu jest możliwość maksymalnego dostosania go do naszych potrzeb (architektura procesora, opcje konfiguracji i kompilacji programu), minusem brak zależności a czasem nawet możliwości łatwego odinstalowania aplikacji. Cóż, nic nie jest idealne.

Proces kompilacji ze źródeł przebiega następująco: najpierw rozpakowujemy pobrane archiwum z programem do osobnego katalogu. Następnie przeprowadzamy konfigurację programu, czyli wybieramy opcje które nas interesują. Mogą to być np. miejsca instalacji w systemie czy włączenie lub wyłączenie pewnych funkcji programu. Później kompilujemy program a na samym końcu instalujemy. Prześledźmy wszystkie te operacje dokładniej.

Rozpakowywanie źródeł

Pliki *.tar.gz rozpakowywujemy poleceniami:

gzip -d archiwum.tar.gz
tar -zvf archiwum.tar

lub krócej:

tar -zxvf archiwum.tar.gz

Pliki *.tar.bz2 rozpakowywujemy poleceniami:

bzip2 -d archiwum.tar.bz2   
 tar -xcf archiwum.tar

lub szybciej:

tar -xyvf archiwum.tar.bz2

Konfiguracja programu

Konfigurację programu przeprowadzamy poleceniem:

./configure

Przeważnie to wystarcza, jeżeli chcemy, możemy także dodać kolejne opcje zmieniające domyślne ustawienia. Najczęściej wykorzystywana opcja dodatkowa to -prefix określająca domyślny katalog instalacji (nie /usr/local). Wszystkie opcje konfiguracyjne możemy zobaczyć dodając parametr –help.

./configure --help

Także pliki INSTALL dostarczony z kodem źródłowym dokładnie takie parametry opisuje.

Kompilacja programu

Program kompilujemy poleceniem make.Prawie każdy program linuksowy w postaci źródłowej posiada plik MAKEFILE dokładnie opisujący reakcję na to polecenie.

make

Często przydaje się program ccache, którego zadaniem jest cachowanie bibliotek powstałych w czasie kompilacji. Pozwala to w przypadku wielokrotnego kompilowania tego samego programu z niewielkimi zmianami konfiguracyjnymi znacznie skrócic czas trwania całego procesu.

Instalacja programu

Program instalujemy (ale może zrobić to tylko root) poleceniem make install

make install

Jak już wcześniej wspomniałem plik MAKEFILE zawiera instrukcje jak ma się zachować instalator w tym przypadku.

Odinstalowanie aplikacji

Pewnym probleme może być odinstalowanie samodzielnie skompilowanego programu. Większość dobrze napisanych programów ma opcję uninstall w pliku MAKEFILE i wydanie polecenia

make uninstall

spowoduje jego usunięcie z systemu. Jednak ten pożyteczny zwyczaj powoli zanika. Rozwiązaniem tego problemu jest skorzystanie z programów monitorujących proces instalacji jak np. checkinstall. Dzięki niemu możemy po instalacji stworzyć pakiet rpm z plikami właśnie zainstalowanymi. Efektem tej czynności jest możliwość łatwego odnistalowania.

Installwatch

Program installwatch monitoruje proces instalacji aplikacji dzięki czemu jesteśmy wstanie ręcznie pousuwać efekty instalacji. Komunikaty o akcjach podejmowanych podczas instalacji są wyświetlane na konsoli.

Przykład z instalacji pakietu jpeg-6bsrc

/usr/bin/install -c cjpeg /usr/local/bin/cjpeg
/usr/bin/install -c djpeg /usr/local/bin/djpeg
/usr/bin/install -c jpegtran /usr/local/bin/jpegtran
/usr/bin/install -c rdjpgcom /usr/local/bin/rdjpgcom
/usr/bin/install -c wrjpgcom /usr/local/bin/wrjpgcom
/usr/bin/install -c -m 644 ./cjpeg.1 /usr/local/man/man1/cjpeg.1
/usr/bin/install -c -m 644 ./djpeg.1 /usr/local/man/man1/djpeg.1
/usr/bin/install -c -m 644 ./jpegtran.1 /usr/local/man/man1/jpegtran.1
/usr/bin/install -c -m 644 ./rdjpgcom.1 /usr/local/man/man1/rdjpgcom.1
/usr/bin/install -c -m 644 ./wrjpgcom.1 /usr/local/man/man1/wrjpgcom.1

Checkinstall

Program checkinstall idzie o krok dalej (tak na prawdę bazuje na istallwatch) i pozwala stworzyć prosty pakiet z instalowanego oprogramowania. Dzięki temu możemy w łatwy sposób go odinstalować.

debian:/usr/src/jpeg/jpegsrc.v6b/jpeg-6b# checkinstall make install

checkinstall 1.5.3, Copyright 2001 Felipe Eduardo Sanchez Diaz Duran
This software is released under the GNU GPL.

The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]:

Preparing package documentation…OK

Installing with „make install”…

========================= Installation results ===========================

Copying documentation directory…
/usr/bin/install -c cjpeg /usr/local/bin/cjpeg
/usr/bin/install -c djpeg /usr/local/bin/djpeg
/usr/bin/install -c jpegtran /usr/local/bin/jpegtran
/usr/bin/install -c rdjpgcom /usr/local/bin/rdjpgcom
/usr/bin/install -c wrjpgcom /usr/local/bin/wrjpgcom
/usr/bin/install -c -m 644 ./cjpeg.1 /usr/local/man/man1/cjpeg.1
/usr/bin/install -c -m 644 ./djpeg.1 /usr/local/man/man1/djpeg.1
/usr/bin/install -c -m 644 ./jpegtran.1 /usr/local/man/man1/jpegtran.1
/usr/bin/install -c -m 644 ./rdjpgcom.1 /usr/local/man/man1/rdjpgcom.1
/usr/bin/install -c -m 644 ./wrjpgcom.1 /usr/local/man/man1/wrjpgcom.1

======================== Installation succesful ==========================

Copying files to the temporary directory…OK

Striping ELF binaries and libraries…OK

Compressing man pages…OK

Building file list…OK

Please choose the packaging method you want to use.
Slackware [S], RPM [R] or Debian [D]? D

ćwiczenie 4

Proszę skompilować i zainstalować program Samhain. Następnie korzystając z opcji uninstall odinstalować pakiet.

Dodaj komentarz