![](https://habrastorage.org/files/c1b/e13/406/c1be13406c9a41789a0b134aacae3b05.jpg)
Наконец, перевод очередной статьи от Давида Ревуа — прекрасного художника, использующего свободное программное обеспечение, а также постоянного члена сообществ Krita Foundation и Blender Institute. Мастер делится с начинающими художниками инструкцией по сборке самой свежей версии графического редактора Krita из исходных кодов. Он считает, что этот процесс на самом деле не так сложен и заковырист, как кажется на первый взгляд. Все этапы прекрасно проиллюстрированы. Приобщайтесь!
Вступление
Почти через год после того, как я выпустил Compilscripts на GitHub, я понял, что допустил ошибку. Сама идея подхода Compilscript оказалась неверной, поэтому я решил прекратить его поддержку.
Что такое Compilscript ?
Проект Compilscript был набором скриптов, помогающих пользователям собрать и установить Krita (последнюю версию для разработчиков) и осуществлять «автомагическое» техническое обслуживание программы. Скрипты достигли небольшого успеха. Я до сих пор горжусь тем, как много я узнал, пока его делал.
Что было не так?
Если случалось что-то необычное, то, чего я не учел, Compilscript выдавал ошибку и прекращал работу… А так как «необычности» — это обычное явление в Linux, пользователь сильно зависел от системы, которую не понимал. И когда она ломалась, она также ломала весь рабочий процесс пользователя, не оставляя ему возможности чего-либо исправить. Это не решение.
Новый подход
Поэтому я решил, что лучше всего
Всё проиллюстрировано
Также я предлагаю ряд иллюстраций о компиляции (распространяются под лицензией CC-By). Надеюсь, эти изображения помогут другим проектам стать более дружелюбными к пользователю и понятнее донести смысл через простую аналогию: кот строит домик.
Почему кот?
Потому что котиков хорошо знает весь Интернет: с котиками невозможно ошибиться.
Готовим директории
![](https://habrastorage.org/files/281/5e2/486/2815e2486001487c9c8246434e2a24be.jpg)
Первый обязательный шаг: подготовка места. Потребуется примерно 5GB свободного пространства в вашем домашнем каталоге. Мы будем использовать структуру, рекомендованную разработчиками:
/home/<имя-пользователя>/kde4/src для исходного кода
/home/<имя-пользователя>/kde4/build для сборки Krita
/home/<имя-пользователя>/kde4/inst для установки Krita
Примечание: в этой инструкции воспринимайте <имя-пользователя> как ваше имя пользователя (напр.: /home/deevad/kde4/src )
Чтобы сделать это, откройте Терминал, скопируйте строку (Ctrl+C) и вставьте в Терминал (Ctrl+Shift+V ):
mkdir -p ~/kde4/src ~/kde4/build ~/kde4/inst
Также проверьте в менеджере пакетов вашего дистрибутива, чтобы не были установлены пакеты calligra и krita. Используйте поиск по названию и, при необходимости, удалите их.
Получаем исходный код
![](https://habrastorage.org/files/44f/bb0/821/44fbb08215f5495e97ee214bc40d76d6.jpg)
Перейдите в папку, используя команду cd (change directory) и клавишу Tab для авто-дополнения названий.
cd ~/kde4/src
Установите git с помощью менеджера пакетов вашего дистрибутива.
Затем дайте git команду получить исходный код, вставьте в Терминале эту строку, находясь в директории ~/kde4/src:
git clone git://anongit.kde.org/calligra.git
Внимание! В настоящий момент (март 2015-го) в связи с переходом на Qt5 основная разработка Krita ведется в ветке calligra/2.9, поэтому сразу после получения исходных текстов необходимо переключить текущую ветку командами
cd ~/kde4/src/calligra
git checkout calligra/2.9
Получаем библиотеки и зависимости
![](https://habrastorage.org/files/23b/d8a/cc0/23bd8acc03ac48fbaa557d40e1f2c828.jpg)
Эта часть может быть сложноватой: каждый дистрибутив использует свой способ управления пакетами, поэтому устанавливаем библиотеки. Krita — часть Calligra, поэтому зависит от большого количества библиотек; и не всегда получается их установить одной командой. На некоторых дистрибутивах (Ubuntu, openSUSE) для этого есть основной мета-пакет, но на других — нет. Читайте официальную документацию по ссылке, чтобы уточнить код для автополучения необходимых библиотек. (Примечание: это ссылка на wiki-страницу, поэтому не стесняйтесь редактировать, добавлять, вносить правки, чтобы облегчить данный процесс другим пользователям.)
Если вашего дистрибутива нет в списке, перейдём к плану «Б» и будем искать пакеты по одному в вашем менеджере пакетов. Это звучит ужасно, но не должно занять слишком много времени. (Примечание: в некоторых дистрибутивах эти библиотеки называются по принципу: <имя-библиотеки>-dev или <имя-библиотеки>-devel ).
Этот список будет вам полезен:
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
В редких случаях, а также если ваш дистрибутив устарел, может получиться так, что вам будут доступны только старые версии библиотек. Вам потребуется собрать эти зависимости вручную. Запомните, файлы README и поисковые системы — ваши друзья.
Конфигурирование
![](https://habrastorage.org/files/6b8/d7e/2e8/6b8d7e2e892d4e1d9f4448f642fe0930.jpg)
Конфигурирование с помощью cmake проверит, достаточно ли установлено библиотек для сборки Krita. Если вы получите ошибки при конфигурировании, посмотрите, каких именно библиотек не хватает, в выводе команды будет об этом написано. Вот почему важно проверять, всё ли в порядке.
Мы информируем cmake о нашей структуре папок, а также даём команду на сборку только Krita. Но сначала делаем cd, чтобы сделать все в правильном месте:
cd ~/kde4/build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/kde4/inst $HOME/kde4/src/calligra -DCMAKE_BUILD_TYPE=RelWithDebInfo -DPRODUCTSET=KRITA
Сборка
![](https://habrastorage.org/files/d91/3e0/a2c/d913e0a2c91d49c5a5f6e658eae08cb0.jpg)
После того как вы прочтете отчет о конфигурации, если всё выглядит нормально, настанет время собирать Krita.
Оставаясь в папке /kde4/build, вызовите make с параметром -j<количество>, где <количество> должно быть заменено числом параллельных операций, поддерживаемым вашим процессором ( иногда рекомендуется +1). Например, у меня 8 ядер, поэтому я использую -j9.
make -j9
Совет: если вы не знаете, сколько у вас ядер, можно узнать это простой командой:
cat /proc/cpuinfo | grep processor | wc -l
Установка
![](https://habrastorage.org/files/fdc/646/799/fdc64679975b4ef9a4f62181f1bd24d4.jpg)
Если сборка дошла до 100% без ошибок, вы можете дать команду make установить файлы в вашу папку.
make install -j9
Пути и переменные окружения
![](https://habrastorage.org/files/7f7/728/9a3/7f77289a399847668dd27baca4ab1a57.jpg)
Установка завершена, но ваша система еще не рассматривает содержимое папки установки как часть набора приложений в системе. Давайте укажем системе правильный путь, в Терминале скопируем по очереди строки:
export KDEDIRS=$HOME/kde4/inst:$KDEDIRS
export PATH=$HOME/kde4/inst/bin:$PATH
К сожалению, эти переменные окружения не постоянны, после выключения или перезагрузки системы они будут потеряны и наш мостик разрушится. Чтобы они задавались при каждом входе в систему, вставьте их в конце файла ~/.profile с помощью своего любимого текстового редактора (в некоторых дистрибутивах профиль называется xprofile, проверьте скрытые файлы в папке home/<имя-пользователя>). Затем вам нужно зарегистрировать Krita в системе, kbuildsycoca4 сделает это после запуска в терминале:
kbuildsycoca4
Первый запуск
![](https://habrastorage.org/files/c1b/e13/406/c1be13406c9a41789a0b134aacae3b05.jpg)
Поздравляем! Вы можете запустить «Krita-минутной-свежести», написав krita в Терминале или с помощью системного меню.
Если там не отображается Krita, почитайте документацию по вашему окружению рабочего стола: «Как создать пользовательскую кнопку запуска».
Обновление
![](https://habrastorage.org/files/fb7/14f/640/fb714f6406b24ff2b1549bbc790cac03.jpg)
Вы услышали о добавлении новой потрясающей возможности или прочитали об исправлении раздражающей ошибки и хотите обновить версию? Спокойствие, снова вызовите git. Настало время добавить недостающие строки кода в вашу папку. Не надо перекачивать весь пакет.
![](https://habrastorage.org/files/09d/5b8/92d/09d5b892d4154ab78f3202acbf501443.jpg)
Перейдите (cd) в папку с кодом, затем попросите git pull обновить ваш код:
cd ~/kde4/src/calligra/
git pull
![](https://habrastorage.org/files/058/d61/a9d/058d61a9de354c5cb7187e34f9f291ae.jpg)
Но только обновления кода недостаточно; чтобы испытать новую версию Krita, нужно повторить конфигурирование, компиляцию и установку:
cd ~/kde4/build
cmake -DCMAKE_INSTALL_PREFIX=$HOME/kde4/inst $HOME/kde4/src/calligra -DCMAKE_BUILD_TYPE=RelWithDebInfo -DPRODUCTSET=KRITA
make -j8
make install -j8
Если вы обновляетесь ежедневно, вы можете автоматизировать процесс, создав свой минимальный скрипт. Я поделился своим с помощью сервиса 'KDE paste'.
Восстановление
![](https://habrastorage.org/files/be2/b73/634/be2b73634f034f8b82476e5d969afa40.jpg)
Последняя версия для разработчиков может иногда падать или быть непригодной для работы. Экспериментальные изменения добавляются ежедневно. Это может подорвать вашу продуктивность, если вы не знаете как 'вернуться назад во времени' (напр.: ваша любимая кисть больше не работает). Но если вы знаете, как это сделать, ничто не смутит вас, потому что вы можете вернуться к предыдущему состоянию.
![](https://habrastorage.org/files/e00/8d2/c46/e008d2c4694a42dcb1acd2edfe049c6e.jpg)
Чтобы путешествовать сквозь код и время, надо ознакомиться с хронологией. В Терминале для этого используется git log
cd ~/kde4/src/calligra/
git log
С помощью git log, вы можете отследить любые изменения кода, которые называются «коммитами» ('commit'). Нас интересует длинный идентификационный номер (напр.: 15c1749105a7e7cc56b646a66919c29646f8653a ). Вы можете пролистать git log, скопировать номер ID и выйти ( буква Q на клавиатуре). Теперь отправимся в прошлое вашей папки с кодом:
git checkout 15c1749105a7e7cc56b646a66919c29646f8653a
Теперь конфигурируем, компилируем и мы снова в безопасности. Также я рекомендую пакеты gitg или gitk, чтобы иметь графический интерфейс для отображения истории git. Также здесь доступна онлайн-версия.
Чтобы снова обновиться до кода минутной свежести, именуемого master, просто попросите git сходить к нему с git checkout и получите (pull) обновление:
git checkout master
git pull
![](https://habrastorage.org/files/c47/c5a/ab4/c47c5aab424947ad99645317a3905bfa.jpg)
Итог
Надеюсь, эта инструкция поможет многим пользователям насладиться возможностями версии Krita для разработчиков.
Вы можете оставлять отзывы и поправки в комментариях, я сделаю всё, что смогу для поддержания актуальности данной страницы (прим. пер.: я тоже буду стараться поддерживать перевод этой статьи актуальным).
Полезные ссылки:
— Группа русскоязычных пользователей в ВК
— Форма сообщения об ошибке (официальная база ошибок)
— Форма сообщения об ошибке на русском
— Официальный блог Krita
— Официальный форум Krita
Ещё ссылки
— Официальная wiki-страница документации по сборке Calligra.
— Calligra Git: активность и история
— Список обнаруженных и исправленных багов Krita
— Старый репозиторий Compilscript (скоро будет удалён)
— Calligra Git: активность и история
— Список обнаруженных и исправленных багов Krita
— Старый репозиторий Compilscript (скоро будет удалён)