[Перевод] Сборка Krita под Linux для котанов

c1be13406c9a41789a0b134aacae3b05.jpgНаконец, перевод очередной статьи от Давида Ревуа — прекрасного художника, использующего свободное программное обеспечение, а также постоянного члена сообществ Krita Foundation и Blender Institute. Мастер делится с начинающими художниками инструкцией по сборке самой свежей версии графического редактора Krita из исходных кодов. Он считает, что этот процесс на самом деле не так сложен и заковырист, как кажется на первый взгляд. Все этапы прекрасно проиллюстрированы. Приобщайтесь! ВступлениеПочти через год после того, как я выпустил Compilscripts на GitHub, я понял, что допустил ошибку. Сама идея подхода Compilscript оказалась неверной, поэтому я решил прекратить его поддержку. Что такое Compilscript?  Проект Compilscript был набором скриптов, помогающих пользователям собрать и установить Krita (последнюю версию для разработчиков) и осуществлять «автомагическое» техническое обслуживание программы. Скрипты достигли небольшого успеха. Я до сих пор горжусь тем, как много я узнал, пока его делал.

Что было не так? Если случалось что-то необычное, то, чего я не учел, Compilscript выдавал ошибку и прекращал работу… А так как «необычности» — это обычное явление в Linux, пользователь сильно зависел от системы, которую не понимал. И когда она ломалась, она также ломала весь рабочий процесс пользователя, не оставляя ему возможности чего-либо исправить. Это не решение.

Новый подходПоэтому я решил, что лучше всего путь Arch Linux не давать автоматического инструмента, но вместо этого создать документацию, позволяющую художнику с легкостью выполнить процесс самостоятельно и понять, что происходит. Художник должен иметь возможность произвести установку, обновление и, в случае если что-то не будет работать, вернуться к старой версии кода; всё это просто и легко сделать, используя инструкцию.

Всё проиллюстрированоТакже я предлагаю ряд иллюстраций о компиляции (распространяются под лицензией CC-By). Надеюсь, эти изображения помогут другим проектам стать более дружелюбными к пользователю и понятнее донести смысл через простую аналогию: кот строит домик.

Почему кот? Потому что котиков хорошо знает весь Интернет: с котиками невозможно ошибиться.

Готовим директории 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. Используйте поиск по названию и, при необходимости, удалите их.Получаем исходный код 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/calligragit checkout calligra/2.9

Получаем библиотеки и зависимости 23bd8acc03ac48fbaa557d40e1f2c828.jpgЭта часть может быть сложноватой: каждый дистрибутив использует свой способ управления пакетами, поэтому устанавливаем библиотеки. Krita — часть Calligra, поэтому зависит от большого количества библиотек; и не всегда получается их установить одной командой. На некоторых дистрибутивах (Ubuntu, openSUSE) для этого есть основной мета-пакет, но на других — нет. Читайте официальную документацию по ссылке, чтобы уточнить код для автополучения необходимых библиотек. (Примечание: это ссылка на wiki-страницу, поэтому не стесняйтесь редактировать, добавлять, вносить правки, чтобы облегчить данный процесс другим пользователям.)Если вашего дистрибутива нет в списке, перейдём к плану «Б» и будем искать пакеты по одному в вашем менеджере пакетов. Это звучит ужасно, но не должно занять слишком много времени. (Примечание: в некоторых дистрибутивах эти библиотеки называются по принципу: <имя-библиотеки>-dev или <имя-библиотеки>-devel).

Этот список будет вам полезен:

git make cmake boost boost-build kdepimlibs eigen kdegraphics-okularlibgsf libwpd libwpg libwps pstoedit glew gsl automoc4 boost libkdcrawlibpqxx fftw opengtl lcms2 vc exiv2

В редких случаях, а также если ваш дистрибутив устарел, может получиться так, что вам будут доступны только старые версии библиотек. Вам потребуется собрать эти зависимости вручную. Запомните, файлы README и поисковые системы — ваши друзья.Конфигурирование 6b8d7e2e892d4e1d9f4448f642fe0930.jpgКонфигурирование с помощью cmake проверит, достаточно ли установлено библиотек для сборки Krita. Если вы получите ошибки при конфигурировании, посмотрите, каких именно библиотек не хватает, в выводе команды будет об этом написано. Вот почему важно проверять, всё ли в порядке.Мы информируем cmake о нашей структуре папок, а также даём команду на сборку только Krita. Но сначала делаем cd, чтобы сделать все в правильном месте:

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

Сборка d913e0a2c91d49c5a5f6e658eae08cb0.jpgПосле того как вы прочтете отчет о конфигурации, если всё выглядит нормально, настанет время собирать Krita.Оставаясь в папке /kde4/build, вызовите make с параметром -j<количество>, где должно быть заменено числом параллельных операций, поддерживаемым вашим процессором (иногда рекомендуется +1). Например, у меня 8 ядер, поэтому я использую -j9. make -j9

Совет: если вы не знаете, сколько у вас ядер, можно узнать это простой командой: cat /proc/cpuinfo | grep processor | wc -l

Установка fdc64679975b4ef9a4f62181f1bd24d4.jpgЕсли сборка дошла до 100% без ошибок, вы можете дать команду make установить файлы в вашу папку. make install -j9

Пути и переменные окружения 7f77289a399847668dd27baca4ab1a57.jpgУстановка завершена, но ваша система еще не рассматривает содержимое папки установки как часть набора приложений в системе. Давайте укажем системе правильный путь, в Терминале скопируем по очереди строки:

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

К сожалению, эти переменные окружения не постоянны, после выключения или перезагрузки системы они будут потеряны и наш мостик разрушится. Чтобы они задавались при каждом входе в систему, вставьте их в конце файла ~/.profile с помощью своего любимого текстового редактора (в некоторых дистрибутивах профиль называется xprofile, проверьте скрытые файлы в папке home/). Затем вам нужно зарегистрировать Krita в системе, kbuildsycoca4 сделает это после запуска в терминале: kbuildsycoca4

Первый запуск c1be13406c9a41789a0b134aacae3b05.jpgПоздравляем! Вы можете запустить «Krita-минутной-свежести», написав krita в Терминале или с помощью системного меню.Если там не отображается Krita, почитайте документацию по вашему окружению рабочего стола: «Как создать пользовательскую кнопку запуска».Обновление fb714f6406b24ff2b1549bbc790cac03.jpgВы услышали о добавлении новой потрясающей возможности или прочитали об исправлении раздражающей ошибки и хотите обновить версию? Спокойствие, снова вызовите git. Настало время добавить недостающие строки кода в вашу папку. Не надо перекачивать весь пакет.09d5b892d4154ab78f3202acbf501443.jpgПерейдите (cd) в папку с кодом, затем попросите git pull обновить ваш код: cd ~/kde4/src/calligra/git pull

058d61a9de354c5cb7187e34f9f291ae.jpgНо только обновления кода недостаточно; чтобы испытать новую версию Krita, нужно повторить конфигурирование, компиляцию и установку: cd ~/kde4/buildcmake -DCMAKE_INSTALL_PREFIX=$HOME/kde4/inst $HOME/kde4/src/calligra -DCMAKE_BUILD_TYPE=RelWithDebInfo -DPRODUCTSET=KRITAmake -j8make install -j8

Если вы обновляетесь ежедневно, вы можете автоматизировать процесс, создав свой минимальный скрипт. Я поделился своим с помощью сервиса 'KDE paste'.Восстановление be2b73634f034f8b82476e5d969afa40.jpgПоследняя версия для разработчиков может иногда падать или быть непригодной для работы. Экспериментальные изменения добавляются ежедневно. Это может подорвать вашу продуктивность, если вы не знаете как 'вернуться назад во времени' (напр.: ваша любимая кисть больше не работает). Но если вы знаете, как это сделать, ничто не смутит вас, потому что вы можете вернуться к предыдущему состоянию.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 mastergit pull

c47c5aab424947ad99645317a3905bfa.jpgИтог Надеюсь, эта инструкция поможет многим пользователям насладиться возможностями версии Krita для разработчиков.Вы можете оставлять отзывы и поправки в комментариях, я сделаю всё, что смогу для поддержания актуальности данной страницы (прим. пер.: я тоже буду стараться поддерживать перевод этой статьи актуальным).Полезные ссылки: — Группа русскоязычных пользователей в ВК

— Форма сообщения об ошибке (официальная база ошибок)— Форма сообщения об ошибке на русском— Официальный блог Krita— Официальный форум Krita

© Habrahabr.ru