Tytuł: Kompilacja GIMP-a na systemie Linux Wiadomość wysłana przez: Ziomioslaw on 10.03.2015, 22:05:48 Kompilacja GIMP-a na systemie Linux Tutorial Opracowanie: Ziomioslaw Poziom trudności: Średnio Kompilacja GIMP-a to operacja bardziej skomplikowana niż pobranie go z dostarczonych przez dystrybucję repozytoriów. Na większości dystrybucji (i innych systemów) dostępne są zwykle skompilowane już paczki, dostosowane do danego systemu. Być może trzeba dodać repozytorium paczek, żeby dostępny do pobrania stał się najnowszy, stabilny GIMP - kompilacja nie jest więc niezbędna. Jeśli jednak koniecznie chcesz kompilować, zakładam, że masz swoje powody. I, że posiadasz pewną wiedzę na temat systemu Linux ogólnie jak i swojej dystrybucji. Nie będę więc opisywał np. jak rozpakowuje się archiwa, lub na czym polega dokładnie proces kompilacji. Poniższy przykład opisany jest dla dystrybucji opierającej się na Debianie. Można więc go śmiało używać także na systemach z "rodziny": Ubuntu, Mint, elementaryOS, itp... Podana metoda kompiluje najnowsze źródła (pobrane za pomocą programu git). Należy zauważyć, że otrzymamy w ten sposób wersję deweloperską, będącą w rozwoju. Być może nawet jest ona nieużywalna (albo chociaż jej fragmenty). Kompilujesz na własną odpowiedzialność i na własny użytek. Można jednak poniższy algorytm, stosować do kompilacji GIMP-a w dowolnej wersji. Różnice to wymagane biblioteki i ich wersje. Nic nie stoi na przeszkodzie, aby pobrać sobie źródła do wersji np. 2.8 i je kompilować w ten właśnie sposób. [lp] 1. Zacznijmy od utworzenia sobie katalogu, w którym będziemy kompilować: Kod: mkdir -p ~/tmp/ (Źródła i pliki wynikowe mogą zająć w sumie nawet 1 GB miejsca) Za katalog wynikowy przyjmiemy /opt/gimp-2.9/. [lp] 2. Pobieramy źródła GIMP-a. Poniższe polecenie pobiera nam najnowsze źródła (wspomnianą wersję deweloperską). Jeśli chcesz użyć innych źródeł, wypakuj je po prostu do katalogu ~/tmp/gimp/ Kod: cd ~/tmp [lp] 3. Ustawianie zmiennych systemowych. To ważny krok, ponieważ zapewne nie będziemy posiadać wszystkich bibliotek i kilka trzeba będzie również skompilować. Poniższe zmienne sprawią, że katalog wynikowy (u nas: /opt/gimp-2.9/lib/) stanie się miejscem, które będzie pod tym kątem sprawdzane. Użytą przez nas ścieżkę (/opt/gimp-2.9) można śmiało zmienić - choć trzeba być konsekwentnym i zmieniać ją wszędzie poniżej. Kod: export PATH=/opt/gimp-2.9/bin:$PATH Mała uwaga: polecenie export działa jedynie na czas sesji terminala. Jeśli wyłączymy okienko konsoli, ustawiane przez nas zmienne znikną (trzeba będzie polecenia export powtórzyć). Lecz jest to w sumie pożądane działanie: tych zmiennych potrzebujemy jedynie na czas kompilacji. [lp] 4. Prawdopodobnie kompilujesz dla siebie (na tę właśnie maszynę). Dlatego warto ustawić zmienną systemową, która sprawi, że binaria będą optymalizowane pod Twój komputer: Kod: export CFLAGS="-march=native -O3" Parametr "march" dopasowuje kompilator pod architekturę naszego procesora. Parametr "O3" (to jest wielka litera o) natomiast zleca najlepszą optymalizację pod prędkość wykonywania. Poniższe linki zawierają więcej danych dla ciekawych: https://gcc.gnu.org/onlinedocs/gcc-4.6.3/gcc/i386-and-x86_002d64-Options.html https://gcc.gnu.org/onlinedocs/gcc-4.6.3/gcc/Optimize-Options.html [lp] 5. Pobierzmy wszystkie potrzebne nam do kompilacji i działania GIMP-a biblioteki, jakie system może nam zapewnić. W dystrybucjach "debianowych" można to zrobić poleceniem: Kod: sudo apt-get build-dep gimp Niektórzy polecają od razu zainstalować też pakiet "libtool". Kod: sudo apt-get install libtool [lp] 6. Mamy już źródła (patrz punkt 2). Mamy przynajmniej część niezbędnych bibliotek (punkt 5). Czas uruchomić narzędzie, które sprawdzi nam, czy kompilacja zadziała. Jeśli użyto wcześniej gita, wpisz: Kod: cd ~/tmp/gimp/ Jeśli pliki źródłowe rozpakowano z archiwum: Kod: cd ~/tmp/gimp/ Proces ten pewnie nie wyjdzie za pierwszym razem. Nie należy się tym zrażać. Zapewne to z powodu braku jakiejś biblioteki. Po dodaniu każdej z brakujących bibliotek należy powtórzyć punkt 6. [lp] 7. Pobieranie bibliotek w oparciu o repozytorium naszej dystrybucji. Jeśli wstępne testy konfiguracji wykazały brak biblioteki X, to można spróbować poszukać, czy nie ma jej w oficjalnym repozytorium. Możliwe, że należy szukać pakietu "libX" (prefix "lib" przed nazwą biblioteki). Interesuje nas wersja developerska (bo kompilacja), więc nazwa pakietu może (lecz nie musi) wyglądać następująco: libX-dev (sufix "-dev" wskazuje, że paczka przydatna jest do kompilacji). W nazwie zwykle zawarty jest także numer wersji. Polecenie zainstalowania biblioteki może więc wyglądać tak: Kod: sudo apt-get install libX-1.0-dev Większość dystrybucji pozwala dopełniać nazwy pakietów z poziomu konsoli. Mają one również swoje własne menadżery pakietów z opcją wyszukiwania. A i same repozytoria mają swoje strony. Szukać można więc i z przeglądarki. [lp] 8. Biblioteka BABL. Zapewne za pierwszym uruchomieniem skryptu z punktu 6 pojawia się poniższy komunikat: Kod: configure: error: Package requirements (babl >= 0.1.12) were not met: Brakuje, jak można się domyśleć, biblioteki BABL (http://gegl.org/babl/). Pobierzemy i skompilujemy jej źródła. Aby ją pobrać za pomocą programu git, wprowadzamy: Kod: cd ~/tmp/ Następnie poniższe: Kod: cd babl Jeśli nie pobraliśmy źródeł przez git, należy użyć poleceń: Kod: cd babl Parametr "-j5" to polecenie zaprogramowania użycia aż pięciu procesów na raz w czasie pracy (już w upragnionym GIMP-ie). Liczbę procesów jakie należy sobie zaprogramować (tutaj pięć) wyliczamy przez: dodanie jedynki do liczby posiadanych rdzeni procesora (w naszym przypadku były to cztery rdzenie). [lp] 9. Bibliotek GEGL Drugą ważną dla GIMP-a biblioteką, której również prawdopodobnie nie ma w systemie, jest: GEGL (http://gegl.org). Jej brak skrypt konfiguracyjny GIMP-a objawia poniższym komunikatem: Kod: configure: error: Package requirements (gegl-0.3 >= 0.3.0) were not met: Aby go pobrać ze źródeł używamy: Kod: cd ~/tmp/ Następnie: Kod: cd gegl Lub ./configure, jeśli nie używaliśmy gita (prefix ten sam). Jeśli się uda, standardowo: Kod: make -j5 Znaczenie parametru -j5 zostało wyjaśnione w punkcie 8. [lp] 10. Pobieranie źródeł i kompilacja źródeł do dowolnej biblioteki. Patrząc na powyższe punkty łatwo sprawdzić, że w zasadzie każdą brakującą nam bibliotekę można sobie skompilować za pomocą kodu: Kod: cd ~/tmp/ Lub, jeśli nie pobraliśmy źródeł za pomocą programu git. Kod: ./configure --prefix=/opt/gimp-2.9 Adresy repozytoriów gita można znaleźć na stronach bibliotek (zamieściłem te, których źródła musiałem pobrać). Kolejnym krokiem jest wykonanie poleceń: Kod: make -j5 Znaczenie parametru -j5 zostało wyjaśnione w punkcie 8. Możliwe, że nie wszystkie biblioteki jakie kompilujesz obsługują ten parametr. [lp] 11. Powtarzając punkt 6 aż do skutku otrzymamy w końcu małe podsumowanie, które powinno wyglądać jak niżej: Kod: Building GIMP with prefix=/opt/gimp-2.9, datarootdir=${prefix}/share Warto mu się przyjrzeć i zastanowić, czy nie chcemy doinstalować czegoś (np. biblioteki Ghostcript do otwierania PDF-ów). Jeśli zdecydujemy się doinstalować jakąś bibliotekę, należy powtórzyć punkt 6. Możemy też śmiało kontynuować kompilację programu GIMP, bez doinstalowywania czegokolwiek - pokazanie się tego podsumowania już świadczy o tym, że możemy przystąpić do naszego głównego celu. Podobne podsumowania pojawiają się również przy kompilacji innych bibliotek (w tym i BABL, i GEGL). Być może je również warto przejrzeć. [lp] 12. Kompilacja GIMP-a: Kod: cd ~/tmp/gimp Znaczenie parametru -j5 zostało wyjaśnione w punkcie 8. [lp] 13. Nasz GIMP został zainstalowany w katalogu /opt/gimp-2.9/bin/gimp-2.9 Życzę dobrej zabawy :) [lp] 14. Jeśli chcemy, aby program był rozpoznawalny w całym systemie, należy umieścić skrót do niego w katalogach (jednym z dostępnych), które wymienione w zmiennej PATH. Jakie katalogi wchodzą do tej ścieżki? Sprawdź choćby i to przez poniższe polecenie: Kod: echo $PATH Samo dodanie GIMP-a jako rozpoznawalne polecenie polega na wprowadzeniu komendy: Kod: sudo ln -s /opt/gimp-2.9/bin/gimp-2.9 <wybrana ścieżka z powyższego zbioru PATH>/gimp Strony bibliotek:
Źródła:
Problemy na jakie można natrafić: [op] Problem z wersją libtool (2.4 vs 2.4.2) Kod: libtool: Version mismatch error. This is libtool 2.4, but the Według strony (http://askubuntu.com/questions/56937/babl-recreate-aclocal-m4-with-macros-from-libtool-2-4) Należy użyć poniższego polecenia, następnie jeszcze raz configure lub autogen Kod: autoreconf Tytuł: Odp: Kompilacja GIMP-a Wiadomość wysłana przez: be@ on 11.03.2015, 06:19:02 Poprawiłam rozliczne literówki i błędy gramatyczne. Było ich naprawdę dużo, więc myślę, że powinieneś pod tym kątem sprawdzić również wszystkie polecenia, bo tam jest ważna każda literka i spacja, a ja nie jestem w stanie ich sprawdzić, podobnie jak treści merytorycznej. Tym już będzie musiał zająć się ktoś inny.
[lp] 3. Ustawianie zmiennych systemowych. Ostatnie zdanie wygląda na niedokończone lub źle sformułowane: że katalog wynikowy co?To ważny krok, ponieważ zapewne nie będziemy posiadać wszystkich bibliotek i trzeba będzie kilka skompilować również. Poniższe zmienne sprawią, że katalog wynikowy (u nas: /opt/gimp-2.9)... Tytuł: Odp: Kompilacja GIMP-a Wiadomość wysłana przez: Ziomioslaw on 11.03.2015, 11:10:23 Poprawiłam rozliczne literówki i błędy gramatyczne. Było ich naprawdę dużo, więc myślę, że powinieneś pod tym kątem sprawdzić również wszystkie polecenia, bo tam jest ważna każda literka i spacja, a ja nie jestem w stanie ich sprawdzić, podobnie jak treści merytorycznej. Tym już będzie musiał zająć się ktoś inny. [lp] 3. Ustawianie zmiennych systemowych. Ostatnie zdanie wygląda na niedokończone lub źle sformułowane: że katalog wynikowy co?To ważny krok, ponieważ zapewne nie będziemy posiadać wszystkich bibliotek i trzeba będzie kilka skompilować również. Poniższe zmienne sprawią, że katalog wynikowy (u nas: /opt/gimp-2.9)... Polecenia powinny być dobre, bo je sprawdzałem, ale raz jeszcze to sprawdzę. Co do literówek wybacz: miałem to jeszcze przejrzeć, ale zdecydowałem się to publikować, bo tak to bym to tak odwlekał i odwlekał. Ostatnie zdanie jeszcze dokończę (jak przypomnę sobie o chodziło). Tytuł: Odp: Kompilacja GIMP-a na systemie Linux Wiadomość wysłana przez: Ziomioslaw on 11.03.2015, 19:24:47 Punkt 9-ty: nie dokończony (zrobione)
Punkt 11-ty: poprawić ścieżkę (zrobione) Ten punkt 3 też poprawiony. Tytuł: Odp: Kompilacja GIMP-a na systemie Linux Wiadomość wysłana przez: Hasia on 14.03.2015, 21:00:08 Poprawiłam naprawdę nieliczne już błędy, jak zamiana e na "ę", czy usunięcie powtórzonego słowa. Nie zauważyłam więcej błędów.
|