Instalacja programu ze źródeł

Z Fedora Wiki
Skocz do: nawigacji, wyszukiwania
Tools.png
W budowie
Proszę przejrzeć czy to jest poprawnie w ogóle i dodać co wypada,
  • cmake to tak? bo nigdy nie robiłem ;P
  • opis checkinstall
Warn.png
Sprawdź najpierw!
artykuł Zarządzanie pakietami i jeśli to możliwe stosuj paczki rpm/src.rpm. Dopiero w ostateczności kompiluj paczki ze źródeł

Spis treści

Instalacja programu ze źródeł

Rozpakuj archiwum i przejdź do folderu ze źródłami. Standardowo sposób kompilacji i wymagane programy powinien znajdować się w pliku INSTALL programu (ostatecznie na stronie programu).

Narzędzia

Musisz mieć w systemie kilka narzędzi:

yum install gcc gcc-c++ make cmake automake\*

A jeśli zamierzasz użyć checkinstall, dostępna jest paczka rpm. Prawdopodobnie nie masz wszystkich wymaganych do kompilacji paczek. Jeśli program potrzebuje do kompilacji źródeł paczki xxx tzn. że w Fedorze jest to paczka xxx-devel. Problemy z zależnościami wyświetlą się podczas wpisywania kolejnych poleceń. Większość instalacji wygląda tak samo.

Ustawienia parametrów instalacji

Parametry ustawiane są zazwyczaj przez configure, ale coraz więcej projektów zaczyna korzystać z cmake zamiast z autotools. Wykonaj:

Note.png
Notatki
Gdzieś to trzeba wcisnąć: Odpowiednie wartości uzyskamy wpisując rpm --showrc i 'grepować' otrzymany wynik, bo zbędnych informacji jest sporo.'
  • jeśli program korzysta z configure
./configure

Żeby nie robić w systemie bałaganu można dodać prefiks, aby zmienić miejsce, do którego zostanie zainstalowany program. Typowo:

./configure --prefix=/usr/local 

Zgodnie z FHS 2.3 ręcznie kompilowane programy mają lądować do /usr/local/ by podczas aktualizacji systemu nie zostały nadpisane.

lub w domowym katalogu (utwórz wcześniej folder "usr" lub inny)

./configure --prefix=$HOME/usr
  • jeśli program korzysta z cmake
Note.png
Notatki
http://wiki.qgis.org/qgiswiki/Building_with_CMake Jeśli chcemy też podrasować kompilowaną aplikację, trzeba odpowiednio ustawić zmienne CFLAGS, CXXFLAGS i LDFLAGS.
cmake .

Prefix wskazujący na miejsce instalacji ustawimy stosując opcję:

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local

W przypadku programów napisanych dla środowiska KDE4, takich jak np. amarok często wymaga się aby prefix ustawiony był jako:

cmake . -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`

Informacje diagnostyczne można wyłączyć stosując opcję:

cmake . -DCMAKE_BUILD_TYPE=Release

Jeśli zachodzi potrzeba włączenia/wyłączenie określonej funkcjonalności kompilowanego programu należy zastosować opcję

cmake . -D<zmienna>:<typ>=<wartość> np:
cmake . -DWITH_FFMPEG:BOOL=NO
cmake . -DWITH_FFMPEG:BOOL=YES

Można również skorzystać z graficznego interfejsu cmake:

[root@ X~]#yum install cmake-gui

W tym przypadku w programie cmake-gui należy wskazać rozpakowane źródła programu oraz katalog w którym będzie on kompilowany (jeśli nie tworzymy katalogu build obie ścieżki są takie same). Można teraz skonfigurować program według własnych potrzeb.

Kompilacja

Teraz najdłuższy proces. Kompilacja może trwać minutę, a może i kilka godzin w zależności od sprzętu i rozmiarów paczki.

make

Teraz opcjonalnie możesz wykonać symulację instalacji

make test

jeśli nie ma krytycznych błędów to jest ok.

Instalacja

Jeśli w ./configure ustawiłeś inny katalog niż domowy, to musisz się teraz zalogować na Konto root. Pozostaje wykonać

make install  

i zakończyć lekturę, albo możesz się powstrzymać i zamiast tego stworzyć paczkę rpm przy pomocy polecenia

checkinstall

checkinstall nie jest idealny, ale do domowego zastosowania powinien na początek wystarczyć. Jeśli Cię to nie satysfakcjonuje możesz stworzyć paczkę samodzielnie. Mając paczkę rpm łatwiej Ci będzie zarządzać oprogramowaniem w systemie.

Tip.png
"Święta Trójca"
na własna rękę to najprościej będzie wykonać jako root

./configure && make && make install

albo:

cmake . && make && make install

Jak usunąć własne paczki z systemu

To zależy od źródeł. Niektóre (te lepiej przygotowane) mają opcję

make uninstall

lub mają skrypt uninstall. Należy tylko pamiętać, że coś takiego może nam spowodować zaburzenia w pracy innych programów. Nie ma tu kontroli zależności jak w rpm. Jeżeli instalujemy program z podaniem innych ścieżek niż domyślne to odinstalowywanie nie zawsze się powiedzie. Poza tym zawsze pozostaje analiza make install, tam widać co jest wrzucane, więc wiadomo co wyrzucić.

Zobacz też

Osobiste
Przestrzenie nazw

Warianty
Działania
Wiki
Nawigacja
Inne
Narzędzia