Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?


Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Strony: [1]
DrukujPobierz PDF
Autor Wątek: Kompilacja GIMP-a na systemie Linux  (Przeczytany 12617 razy)
0 użytkowników i 1 Gość przegląda ten wątek.
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 430
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« : 10.03.2015, 21: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.

Lime Point 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/.

Lime Point 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
git clone git://git.gnome.org/gimp

Lime Point 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
export PKG_CONFIG_PATH=/opt/gimp-2.9/lib/pkgconfig
export LD_LIBRARY_PATH=/opt/gimp-2.9/lib

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.

Lime Point 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

Lime Point 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

Lime Point 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/
./autogen.sh --prefix=/opt/gimp-2.9

Jeśli pliki źródłowe rozpakowano z archiwum:

Kod:
cd ~/tmp/gimp/
./configure --prefix=/opt/gimp-2.9

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.

Lime Point 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.

Lime Point 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:

Requested 'babl >= 0.1.12' but version of babl is 0.0.22

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables BABL_CFLAGS
and BABL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

Configure failed or did not finish!

Brakuje, jak można się domyśleć, biblioteki BABL. Pobierzemy i skompilujemy jej źródła.

Aby ją pobrać za pomocą programu git, wprowadzamy:

Kod:
cd ~/tmp/
git clone git://git.gnome.org/babl

Następnie poniższe:

Kod:
cd babl
./autogen.sh --prefix=/opt/gimp-2.9
make -j5
sudo make install -j5

Jeśli nie pobraliśmy źródeł przez git, należy użyć poleceń:

Kod:
cd babl
./configure --prefix=/opt/gimp-2.9
make -j5
sudo make install -j5

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).

Lime Point 9. Bibliotek GEGL

Drugą ważną dla GIMP-a biblioteką, której również prawdopodobnie nie ma w systemie, jest: GEGL. Jej brak skrypt konfiguracyjny GIMP-a objawia poniższym komunikatem:

Kod:
configure: error: Package requirements (gegl-0.3 >= 0.3.0) were not met:

No package 'gegl-0.3' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables GEGL_CFLAGS
and GEGL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

Configure failed or did not finish!

Aby go pobrać ze źródeł używamy:

Kod:
cd ~/tmp/
git clone git://git.gnome.org/gegl

Następnie:

Kod:
cd gegl
./autogen.sh --prefix=/opt/gimp-2.9

Lub ./configure, jeśli nie używaliśmy gita (prefix ten sam).

Jeśli się uda, standardowo:

Kod:
make -j5
sudo make install -j5

Znaczenie parametru -j5 zostało wyjaśnione w punkcie 8.

Lime Point 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/
git clone git://(...)
./autogen.sh --prefix=/opt/gimp-2.9

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
sudo make install

Znaczenie parametru -j5 zostało wyjaśnione w punkcie 8.
Możliwe, że nie wszystkie biblioteki jakie kompilujesz obsługują ten parametr.

Lime Point 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
Desktop files install into ${datarootdir}

Extra Binaries:
  gimp-console:        yes

Optional Features:
  Language selection:  yes

Optional Plug-Ins:
  Ascii Art:           yes
  Ghostscript:         no (Ghostscript library not found)
  Help Browser:        yes
  JPEG 2000:           no (JasPer library not found)
  MNG:                 yes
  OpenEXR:             no (OpenEXR not found)
  PDF (import):        yes (Cyrillic and CJK support: no or poppler-data < 0.4.7)
  PDF (export):        yes
  Print:               yes
  Python 2:            yes
  Script-Fu:           yes
  SVG:                 yes
  TIFF:                yes
  TWAIN (MacOS X):     no
  TWAIN (Win32):       no
  Webpage:             yes
  WMF:                 yes
  X11 Mouse Cursor:    yes
  XPM:                 yes

Optional Modules:
  ALSA (MIDI Input):   yes
  Linux Input:         yes (GUdev support: no (libgudev not found))
  DirectInput (Win32): no

Tests:
  Use xvfb-run         no (not found)

WARNING: Your gettext version is 0.18.1.
         The recommended gettext version is 0.19 or over.
         If you continue without updating gettext, your build will have partially broken localization.

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ć.

Lime Point 12. Kompilacja GIMP-a:

Kod:
cd ~/tmp/gimp
make -j5
sudo make install -j5

Znaczenie parametru -j5 zostało wyjaśnione w punkcie 8.

Lime Point 13. Nasz GIMP został zainstalowany w katalogu /opt/gimp-2.9/bin/gimp-2.9
Życzę dobrej zabawy Uśmiech

Lime Point 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ć:

Orange Point Problem z wersją libtool (2.4 vs 2.4.2)

Kod:
libtool: Version mismatch error.  This is libtool 2.4, but the
libtool: definition of this LT_INIT comes from libtool 2.4.2.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4
libtool: and run autoconf again.

Według strony Należy użyć poniższego polecenia, następnie jeszcze raz configure lub autogen

Kod:
autoreconf
« Ostatnia zmiana: 14.03.2015, 19:56:06 wysłane przez Hasia » Zapisane
be@
Moderator globalny

Reputacja: 49 Online Online

Płeć: Kobieta
GIMP: 2.8
Licencja: CC-BY
Wiadomości: 7 403
Galeria Użytkownika



Zobacz profil
« Odpowiedz #1 : 11.03.2015, 05: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.
Lime Point 3. Ustawianie zmiennych systemowych.
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)...
Ostatnie zdanie wygląda na niedokończone lub źle sformułowane: że katalog wynikowy co?
Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 430
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #2 : 11.03.2015, 10: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.
Lime Point 3. Ustawianie zmiennych systemowych.
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)...
Ostatnie zdanie wygląda na niedokończone lub źle sformułowane: że katalog wynikowy co?

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).
Zapisane
Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 430
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #3 : 11.03.2015, 18:24:47 »

Punkt 9-ty: nie dokończony (zrobione)
Punkt 11-ty: poprawić ścieżkę (zrobione)

Ten punkt 3 też poprawiony.
Zapisane
Hasia
Moderator globalny

Reputacja: 39 Offline Offline

Płeć: Kobieta
GIMP: 2.10
Licencja: Copyright
Wiadomości: 1 495
Galeria Użytkownika


Czasami nie jestem sobą


Zobacz profil WWW
« Odpowiedz #4 : 14.03.2015, 20: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.
Zapisane

Strony: [1]
DrukujPobierz PDF
Polskie Forum Użytkowników GIMP-aTutorialePropozycje i prośby o tutorialeGotowe tutoriale (Moderator: davlasq)Wątek: Kompilacja GIMP-a na systemie Linux
Skocz do: