Kompilacja pakietu ze źródeł

W obecnych czasach większość pakietów dla dystrybucji Linuksa jest dostępna w postaci gotowych paczek binarnych skompilowanych przez developerów systemu i gotowych do instalacji. Jest to duże ułatwienie i oszczędność czasu, szczególnie gdy wiąże się to z instalacją wielu dodatkowych, wymaganych zależności.
Niemniej jednak taka instalacja sprowadza się do wydania prostej komendy a menadżer pakietów (jeśli Twój system go posiada) wykona całą pracę za Ciebie.

Tak się dzieje do czasu, gdy potrzebne pakiety zainstalujesz z repozytoriów lub znajdziesz w sieci gotową paczkę instalacyjną.

Wtedy jedynym wyjściem jest instalacja pakietu ze źródeł, co może czasami być problemem, szczególnie dla początkujących użytkowinków Linuksa.

Ten rozdział powinien Tobie pomóc w skompilowaniu, zainstalowaniu oraz zbudowaniu pakietu binarnego wykorzystując do tego pakiet źródłowy.

 

Kompilacja pakietu ze źródeł za pomocą „make”

Pierwszy sposób kompilacji wykonam z pomocą programu make.

1. Pobierz i rozpakuj paczki ze źródłami pakietu.

2. Wejdź do rozpakowanego, nowoutworzonego katalogu, otwórz plik tekstowy „Readme” za pomocą dowolnego edytora tekstu i przeczytaj jakie zależności należy zainstalować przed wykonaniem kompilacji pakietu.

3. Zainstaluj zależności (jednym z podstawowych jest kompilator GCC oraz build-essential) za pomocą menadżera pakietów dla Twojej dystrybucji.

4. Następnie otwórz konsolę tekstową i wejdź do rozpakowanego folderu ze źródłami pakietu poleceniem :

cd /ścieżka/do-folderu/źródłowego

5. Teraz wykonaj konfigurację w celu sprawdzenia czy wszystkie zależności do zbudowania pakietu zostały spełnione wydając polecenie (jako zwykły użytkownik) :

./configure

6. W tym przypadku użyłem programu Catfish, dla którego wszystkie zależności zostały spełnione. Jeśli konfiguracja zakończy się błędem spowodowanym brakiem jakiegoś pakietu to zainstaluj go i ponów konfigurację.

make

7. Dodatkowo konfiguracja zwróciła informacje o przewidzianej lokalizacji dla instalacji pakietu, tutaj (Installation prefix is) :
/usr/local

8. Jeśli chcesz aby pakiet został zainstalowany w innym miejscu to dodaj opcję do konfiguracji :

./configure --prefix=/usr/lib

gdzie zamiast „/usr/lib” wpisz swoją lokalizację.

9. Teraz wykonaj kompilację pakietu poleceniem :

make

10. A następnie zainstaluj pakiet poleceniem (lub zbuduj paczkę instalacyjną) :

su (lub sudo) make install

make

11. Program został zainstalowany, możesz uruchomić go w konsoli (jako zwykły użytkownik) lub wybierając program z menu.

make

12. Aby odinstalować pakiet wydaj polecenie z katalogu ze źródłami :

make uninstall

13. Jeśli otrzymasz informację o braku pliku „configure” to możesz to naprawić wydając polecenie :

./autogen

 

Kompilacja pakietu ze źródeł za pomocą „cmake”

Możesz również skompilować pakiet źródłowy przy pomocy cmake na dwa sposoby – w konsoli tekstowej lub używając graficznego interfejsu.

1. Pobierz i rozpakuj paczki ze źródłami pakietu.

2. Zainstaluj zależności (sprawdź na stronie producenta programu) za pomocą menadżera pakietów dla Twojej dystrybucji.

3. Następnie otwórz konsolę tekstową i wejdź do rozpakowanego folderu ze źródłami pakietu poleceniem :

cd /ścieżka/do-folderu/źródłowego

4. W zależności od programu (sprawdź opis instalacji na stronie producenta) przejdź do wymaganego podfolderu („bin”, „build” lub inny) i przeprowadź konfigurację :
cmake ..
 lub
cmake ../

5. Teraz możesz zbudować program używając polecenia :

make

6. A następnie zainstaluj go poleceniem (lub zbuduj paczkę instalacyjną) :

su (lub sudo) make install

7. Możesz również przeprowadzić kompilację pakietu za pomocą graficznej nakładki na program cmake – „cmake-qt-gui”.

cmake

8. Podaj ścieżkę do źródeł pakietu w opcji „Source code” oraz ścieżkę do folderu dla instalacji programu „To build binaries” i kliknij „Configure”. Nie zapomnij o wcześniejszej instalacji zależności.

 

Usunięcie pakietu

Aby usunąć pakiet zainstalowany ze źródeł wejdź do folderu ze źródłami programu (w którym przeprowadzałeś/aś kompilację) i wydaj polecenia, jako administrator :

make uninstall

 

5 thoughts on “Kompilacja pakietu ze źródeł

  • 14/08/2013 at 10:09 am
    Permalink

    @Ratus, 100% racji. Autor tego „przewodnika dla początkujących” najwyraźniej sam nie ma żadnego (istotnego) doświadczenia w budowaniu programów ze źródeł. Zresztą artykuł powstał pewnie na zasadzie: kazano napisać – redaktor napisał, a poziom merytoryczny, czy też użyteczność dla kogokolwiek – nieistotne. Sam wielokrotnie kompilowałem programy ze źródeł, w praktyce KAŻDY wymagał instalacji (lub kompilacji) dodatkowych zależności, co nigdy nie odbywa się „bezboleśnie”, a czasem nawet było niemożliwe (dla mnie).

    Reply
  • 08/02/2013 at 10:28 am
    Permalink

    A ja bardzo dziękuję za ten artykuł, jest to usystematyzowana wiedza podana w przystępnej formie. Dzięki temu może na przyszłość nie będę czuła lęku, kiedy usłyszę „kompilacj ze źródeł”

    Reply
  • 16/11/2012 at 9:28 am
    Permalink

    Dla kogo jest ten artykuł? Jesli ktoś jest na tyle zaawansowany, że potrafi sprawdzić, znaleźć i zainstalować zależności dla programu w formie źródłowej, to z pewnością jest mu znana sekwencja: ./configure && make && make install …
    Dalej, głównym „zatrzymaniem” jest proces ./configure, przez autora załatwiony dwoma słowami. To tutaj wychodzi najwięcej błędów, które trzeba rozumieć i jakoś naprawić. Jeśli „configure” się uda, to „make” z reguły idzie bezbłędnie, a jeśli nie, to i tak nic nie poradzimy, bo to oznacza (najczęściej) źle zbudowany pakiet źródłowy.
    Tak więc, nie demonizując procesu instalacji ze źródeł, nie można wciskać kitu „początkującym”, że to tak ot, z pod palca, komenda „make” i już….

    Reply
  • 20/05/2011 at 12:13 pm
    Permalink

    O ile wiem to samo „make” nie musi być wykonywane z prawami roota. Jedynie „make install” tak.
    Ot taki szczególik ;P Ale ogólnie wpis fajny – bardzo przyda się panikarzom którzy twierdza ze to coś mega trudnego 😛

    Reply
    • 20/05/2011 at 12:14 pm
      Permalink

      Masz rację, już poprawiłem.
      Dzięki

      Reply

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *