Praczet - Adam - Nunas

Kompilowanie Krity pod Linuxem dla KotówKompilowanie Krity pod Linuxem dla KotówKompilowanie Krity pod Linuxem dla Kotów

Kompilowanie Krity pod Linuxem dla Kotów

 

To jest tłumaczenie tutoriala napisanego przez David'a Revoy'a i można go znaleźć na jego stronie.

Intro:

Niemal rok po tym jak umieściłem Compilscript na GitHub odkryłem, że popełniłem błąd. Już od początku Compilscript był błędnie zaprojektowany, więc postanowiłem, że nie będę już go wspierał.

Czym był Compilscript?

Compilscript był to zestaw skryptów, który miał za zadanie pomóc użytkownikom skompilować i zainstalować Kritę (ostatnią developerską wersję) i jednocześnie zapewnić maintenace auto-magicznie. Skrypty okazały się „małym” sukcesem. I ciągle jestem dumny z rzeczy, których się nauczyłem podczas tworzenia tego skryptu.

Co było nie tak?

Kiedy coś niespodziewanego się zdarzyło, Compilscript się wywalał i przestawał działać… A niespodziajki (rzeczy, których  nikt się nie spodziewa) pod linuxem są dość pospolite. Użytkownik jest uzależniony od systemu, którego nie rozumie. I kiedy system się wywala, to wywala całe środowisko produkcyjne, bez informacji o tym jak to naprawić. A to nie jest dobre rozwiązanie.

Nowe podejście

Dlatego też pomyślałem, że lepszym podejściem jest nie danie automatycznego narzędzia, ale stworzenie diabelnie prostej dokumentacji dającej artystom niezależność w procesie kompilacji i dającym wiedzę jak to zrobić.
Artyści powinni być w stanie zainstalować, uaktualnić i móc wrócić do historii kodu jeżeli coś nie działa tak jak poprzednio, wszystko to w minimalnej i prostej do użycia dokumentacji.

Całkowicie zobrazowane

Także oferuję Wam zestaw ilustracji o kompilowaniu (wszystkie są dostępne na zasadzie licencji CC-By). Mam nadzieję, że te ilustracje pomogą innym dokumentacjom projektów stać się bardziej przyjaznymi dla użytkownika i uczynią proces kompilowania bardziej zrozumiałym na podstawie prostej analogii do Kota budującego dom.

Dlaczego Kot?

Ponieważ to jest dobrze znany fakt w internecie: Nie może ci pójść źle z kotami.

Ustawianie katalogów

Pierwszy niezbędny / wymagany krok: przygotowanie miejsca. Będzie potrzebne około 5GB przestrzeni na dysku twardym w katalogu domowym. Utworzymy strukturę katalogów zalecaną przez developerów.

  • /home/<nazwa-twojego-użytkownika>/kde4/src  – gdzie będą przechowywane pliki źródłowe
  • /home/<nazwa-twojego-użytkownika>/kde4/build – gdzie będziemy tworzyć nową Kritę
  • /home/<nazwa-twojego-użytkownika>/kde4/inst – gdzie zostanie zainstalowana nowa Krita


Uwaga: <nazwa-twojego-użytkownika> w tej dokumentacji będzie oznaczał nazwę użytkownika  np. /home/deevad/kde4/src

Żeby to zrobić należy: otwórz Terminal (dla kde alt+F2 i wpisz Terminal), skopiuj tę linię (ctrl+c) i w terminalu wklej ją (ctrl+shift+v):


mkdir -p ~/kde4/src ~/kde4/build ~/kde4/inst


Jednocześnie sprawdź czy w Twoim systemie nie ma zainstalowanych: Krita i Calligra. Możesz użyć przycisku szukaj aby wyszukać tych pakietów a następnie je usuń (od tłumacza: u mnie aplikacja do zarządzania pakietami to: Muon Discover)


Pobieranie plików źródłowych

Przejdź do folderu src używając komendy cd (change directories) i następnie naciśnij przycisk tab aby skorzystać z auto-uzupełniania.


cd ~/kde4/src


Zainstaluj git używając Twojego menedżera pakietów (od tłumacza: u mnie to Muon ale wygodniej jest zainstalować używając komendy  sudo apt-get install git-core należy ją wpisać w Terminalu).

A następnie ładnie poproś git'a o to aby pobrał pliki źródłowe Krity. Będąc w katalogu ~/kde4/src wpisz w terminalu komendę (albo ją wklej):

git clone git://anongit.kde.org/calligra.git

 

Pobieranie bibliotek i wszystkich elementów zależnych

Ta część może być trochę trudna: każda dystrybucja ma swoje różne metody zarządzania pakietami i instalowania bibliotek.

Krita jako część Calligra wymaga bardzo dużej ilości różnych bibliotek i niestety nie ma jednego uniwersalnego polecenia, aby te biblioteki zdobyć (zainstalować).

Niektóre dystrybucje (Ubuntu, OpenSuse) mają jeden generalny pakiet dla tych bibliotek  ale niestety inne dystrybucje nie.

Przeczytaj [oficjalną dokumentację dostępną na Wiki][http://community.kde.org/Calligra/Building#Distribution_Specific_Instructions] dotyczącą automatycznego pobierania potrzebnych bibliotek dostępnych dla Twojego systemu.
(Uwaga: to jest link do Wiki, dlatego śmiało możesz to edytować, poprawiać i wygładzać tak aby było czytelniejsze dla innych artystów a proces instalacji przebiegał gładko).

Jeżeli Twoja dystrybucja nie jest wymieniona na tej stronie, to przejdźmy do planu B i znajdźmy każdą wymaganą bibliotekę jedną po drugiej w Twoim menadżerze pakietów, brzmi to dość upierdliwie, ale nie potrwa to długo.
(Uwaga: niektóre dystrybucje będą miały swoją własną nomenklaturę nazewnictwa dla bibliotek <nazwa-biblioteki>dev lub <nazwa-biblioteki>devel)

To może ci pomóc:


git make cmake boost boost-build kdepimlibs eigen kdegraphics-okular libgsf libwpd libwpg libwps pstoedit glew gsl automoc4 boost libkdcraw libpqxx fftw opengtl lcms2 vc exiv2

W bardzo rzadkich przypadkach kiedy Twoja dystrybucja nie jest aktualna może się zdarzyć, że dostarczone biblioteki będą przestarzałe i będziesz musiał zbudować te zależności ręcznie. Pamiętaj: README pliki i silnik wyszukiwarek internetowych to są Twoi przyjaciele.


Konfiguracja

Konfigurowanie z cmake sprawdzi czy Twój system jest gotowy i czy masz zainstalowane dobre biblioteki. Jeżeli wystąpi jakikolwiek problem z konfiguracją, będziesz w stanie przeczytać jakiej biblioteki ci brakuje, lub z jaką jest jakiś problem, dlatego bardzo ważne jest przeczytanie czy wszystko jest ok.

Jak również poinformujemy cmake o naszej strukturze katalogów i poprosimy o zbudowanie tylko Krita. Jednak zanim to zrobimy upewnij się, że jesteś w odpowiednim miejscu. Najlepiej użyć do tego cd aby przejść w to odpowiednie miejsce.

cd ~/kde4/build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/kde4/inst $HOME/kde4/src/calligra -DCMAKE_BUILD_TYPE=RelWithDebInfo -DPRODUCTSET=KRITA

Budowanie

Po przeczytaniu wyniku poprzedniego polecenia i jeżeli wszystko wygląda ok to jest to ten moment, kiedy można przystąpić do próby zbudowania Krity.
Ciągle będą w folderze ~/kde4/build wywołaj polecenie make z parametrem -j<numer>, gdzie <numer> to ile wątków równoległych zadań może Twój procesor wykonywać (i zalecane jest podać +1). Mój procesor może 8 wątków więc ja wykonuję make -j9

make -j9

Jeżeli nie wiesz ile wątków jest w stanie Twój procesor jednocześnie wykonywać wywołaj to polecenie:

cat /proc/cpuinfo | grep processor | wc -l

 

Instalacja


Jeżeli polecenie make zbuduje (skompiluje) wszystkie elementy Krita bez żadnych problemów i zostanie osiągnięte 100%, wtedy możesz użyć polecenia make w celu instalacji w naszym folderze z instalacjami

make install -j3

 

Ścieżka i zmienne środowiskowe

Twoja istalacja jest skończona, jednak Twój system nie uznaje tego folderu jako jednego z folderów z aplikacjami. Pokażmy więc systemowi tę właściwą (naszą) ścieżkę do aplikacji. W terminalu wykonaj kolejno polecenia:

export KDEDIRS=$HOME/kde4/inst:$KDEDIRS
export PATH=$HOME/kde4/inst/bin:$PATH


Niestety te zmienne nie są permanentne i zostaną usunięte podczas restartu i Twój system a nasz most się zawali. W celu ustawienia ich tak aby po każdym restarcie i zalogowaniu systemu były one pamiętane zapiszmy je w pliku ~/.profile (w niektórych dystrybucjach ten plik nazywa się xprofile, jeżeli masz problemy z jego lokalizacją sprawdź czy nie znajduje się w katalogu <twoja-nazwa-użytkownika> może być on ukryty)

A teraz należy zarejestrować Kritę w systemie, wykonując polecenie kbuildsycoca4 w terminalu.

kbuildsycoca4

 

Pierwsze uruchomienie

Moje gratulacje! Teraz możesz uruchomić „ostatnią-Krite-wydaną-minutę-temu” wpisując polecenie w terminalu krita, lub też w Twoim menu głównym. Jeżeli krita nie pojawia się na liście aplikacji musisz zajrzeć do dokumentacji środowiska-desktopu szukając „jak stworzyć własny launcher (skrót do aplikacji??)”


Uaktualnienie

Usłyszałeś o nowej fajowskiej opcji i zapragnąłeś ją mieć, a może przeczytałeś, że denerwujący błąd został naprawiony i chciałbyś uaktualnić swoją Kritę?
W porządku wywołaj git ponownie.  Tym razem to tylko dodanie do Twojego folderu źródłowego linijki z brakującym kodem i nie będzie ściągał wszystkiego od początku.



cd wejdź do katalogu źródłowego, następnie poproś git'a aby ściągnął uaktualnienia źródeł.

cd ~/kde4/src/calligra/
git pull


Ale uaktualnienie źródeł nie jest jeszcze wystarczające aby cieszyć się nową wersją, aby doznawać tego zaskakująco doskonałego uczucia pracy z nową wersją musisz powtórzyć kroki dotyczące konfiguracji, kompilacji i instalacji.

cd ~/kde4/build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/kde4/inst $HOME/kde4/src/calligra -DCMAKE_BUILD_TYPE=RelWithDebInfo -DPRODUCTSET=KRITA
make -j9
make install -j8

 

Ratunek

Ostatnie wersje developerskie aplikacji mogą się popsuć i czasami być bardzo niestabilne. Eksperymentalne zmiany są dokonywane codzienne. To może wpłynąć na twoją efektywność i produktywność jeżeli nie wiesz jak „cofnąć się w czasie” (np. Twój ulubiony pędzel nie działa)
Jednak jak wiesz jak to zrobić, to żadne chwilowe niedziałanie tej wersji aplikacji nie może mieć wpływu na Ciebie, ponieważ Ty wiesz jak się cofnąć w czasie.


Do podróży przez źródła w czasie musisz przeczytać linie czasu. Odpowiednie polecenie w terminalu to git log


cd ~/kde4/src/calligra/
git log


Z git log, możesz zobaczyć wszystkie zmiany dokonane w kodzie nazwanym „commit”. Co nas interesuje to numer identyfikacyjny (identyfication number) np.:15c1749105a7e7cc56b646a66919c29646f8653a. Możesz przewinąć git log, skopiować ten ID numer a następnie wyjść z niego (literą Q na klawiaturze). I wtedy możesz cofnąć się do wybranej wersji źródła.

git checkout 15c1749105a7e7cc56b646a66919c29646f8653a


A teraz możesz już skonfigurować, skompilować i znowu będziesz w bezpiecznym miejscu. Polecam pakiety gitg lub gik aby mieć graficzny interface który ładnie zwizualizuje git historię. Istnieje również wersja online i jest dostępna tu

Aby uaktualnić ponownie do najnowszej wersji źródła tak zwanego „minute-temu” wystarczy użyć wersji nazwanej master w tym celu wystarczy poprosić git aby powrócił do tej wersji używając polecenia git checkout a następnie zwyczajnie pobrać go.

git checkout master
git pull

 

Konkluzja

 


Mam nadzieję, że ta dokumentacja pomoże wielu użytkownikom doskonale się bawić przy developerskiej wersji Krita. Użyj komentarzy aby dać mi informację zwrotną lub zadać pytanie. Zrobię wszystko co w mojej mocy aby uaktualniać informacje na tej stronie.

 

Przydatne linki:
- Oficjalna strona  Calligra - wiki.
- Calligra Git aktywność i historia
- Lista ostatnio poprawionych błędów Krita bugs
- Formularz zgłaszania błędów - Krita bug
- Stary Compilscript (będzie niedługo usunięte)
- Krita blog
- Krita forum
- Krita kanał IRC  ( odpowiedź może się pojawić w ciągu 1 lub 2h, bądź cierpliwy )

Specjalne podziękowania:
Boudewijn Rempt, Aurélien Gâteau, M.Beast, Yu Asakusa, Matthieu Harel za informacje zwrotne i pomoc w tłumaczeniu.Gerson Alvarado za hiszpańskie tłumaczenie

Autor oryginałi: David Revoy