Приветствую, дорогой читатель. Можно без вступления, для решения проблем при установке листай ниже (если они есть).

Так сложилось, что я стал пользователем Linux, причем постоянным, уже на протяжении 5 лет. Пользоваться виртуалками мне не нравиться, железо у меня не мощное, поэтому приходится пользоваться тем что есть на Linux...

Графический редактор Krita

Долго искал нормальный графический редактор под Linux, хорошую альтернативу Photoshop. Gimp, не смотря на свои функции, меня не устраивал: сложный интерфейс, не для быстрого понимания, и медленный. Через какое-то время я нашел Krita (кстати, один из разработчиков из Москвы - Дмитрий Казаков, и в VK есть официальное сообщество, правда посвящено оно свободному искусству).

Krita - графический инструмент, в первую очередь для художников. Но, с каждым годом в нем больше и больше функций, которые присутствуют в Фотошопе, а кроме этого, часть из них превосходит их возможности Фотошопа (больше функций). Поэтому, Krita стала для меня хорошей альтернативой Photoshop и Gimp.

Установка Krita под Linux

Официальные варианты установки Krita описаны на официальном сайте.

Если говорить проще, то Krita, например на Ubuntu можно поставить из репозитория (он уже включен туда). Но версия там старая, а функции и количество исправлений может отличаться в лучшую сторону, если устанавливать одни из последних версий пакетов. Поэтому я выбираю установку Krita из репозитория https://launchpad.net/~kritalime/+archive/ubuntu/ppa, тем более он будет так чаще обновляться (исправлять найденые косяки).

sudo add-apt-repository ppa:kritalime/ppa
sudo apt-get update
sudo apt-get install krita

После установки пакета запустить приложение можно через меню, а можно через консоль.

Если у вас появилось окошко Криты и никаких ошибок не было, то дальше статью можно не читать).

Ошибка при запуске Krita на Linux Ubuntu 18.04

После установки Krita я запускал его через меню приложений Ubuntu. Реакции нет, открываем консоль и запускаем оттуда.

Ошибки библиотек Qt: не найдена библиотека

Первое с чем я столкнулся - ругается на то, что не установлены библиотеки Qt. К счастью, он выдает какие именно библиотеки не установлены и поэтому мы просто через консоль ищем их и устанавливаем.

# krita

Например, видим ошибку примерно такого плана:

Не найдена библиотека (пакет или файл) libQt5Core.so.5.

Что делаем? Ищем библиотеку.

Либо так:

# apt search libQt5Core
Сортировка… Готово
Полнотекстовый поиск… Готово
libqt5core5a/bionic,now 5.9.5+dfsg-0ubuntu1 amd64 [установлен]
  Qt 5 core module

Либо так:

# aptitude search libQt5Core
i   libqt5core5a            - Qt 5 core module                                                          
p   libqt5core5a:i386       - Qt 5 core module

Что интересного? Пакеты могут быть установлены, но ошибка есть! Что делать? Переустановить указанные пакеты!

Переустанавливал все пакеты через aptitude. Что-то есть у меня подозрения, что через команду apt и автоматическую установку пакетов не все гладко работает, т.к. до Krita мне пришлось также переустановить LibreOffice, месседжеры, почту  т.д. Может что-то пошло во время установки свежей системы? К сожалению не знаю =(. Установил SSD и накатил на нее новую систему. А там уже все ошибки.

aptitude reinstall libqt5core5a
Следующие пакеты будут ПЕРЕУСТАНОВЛЕНЫ:          
  libqt5core5a
0 пакетов обновлено, 0 установлено новых, 1 переустановлено, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 2 035 kБ архивов. После распаковки 0 Б будет занято.
Получено: 1 http://by.archive.ubuntu.com/ubuntu bionic/main amd64 libqt5core5a amd64 5.9.5+dfsg-0ubuntu1 [2 035 kB]
Получено 2 035 kБ в 1с (2 769 kБ/с)    
(Чтение базы данных … на данный момент установлено 263535 файлов и каталогов.)
Подготовка к распаковке …/libqt5core5a_5.9.5+dfsg-0ubuntu1_amd64.deb …
Распаковывается libqt5core5a:amd64 (5.9.5+dfsg-0ubuntu1) на замену (5.9.5+dfsg-0ubuntu1) …
Настраивается пакет libqt5core5a:amd64 (5.9.5+dfsg-0ubuntu1) …
Обрабатываются триггеры для libc-bin (2.27-3ubuntu1) …

Из опыта работы на многих ПК под Linux, замечал одну вещь, что если с первого раза переустановка пакета не помогает и он берет пакет из кэша, то лучше очистить кэш пакетов и установить заново (apt autoclean или aptitude autoclean). Почему так происходит? Либо пакет скачался с ошибками, либо медленно накрывается носитель (например, жесткий диск).

По последующим запросам я установил все требуемые библиотеки и запустил в очередной раз Krita из консоли, но на выходе ошибка.

Not find or load the Qt platform plugin "xcb"

Очередной плагин не запущен, но все необходимые пакеты установлены. К сожалению, решение этой проблемы я искал долго.

# krita
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".

Available platform plugins are: dxcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.

Reinstalling the application may fix this problem.
Аварийный останов (стек памяти сброшен на диск)

Что делать? Оказалось, проблема все еще та же - нужно переустановить пакет! Но какой?

Это было самым интересным, т.к. переустановка Krita не помогала. И вот я нашел ответ: ответ на stackoverflow.com.

Решение: использовать пакет ldd для определения зависимостей пакетов и их расположения (или отсутствия).

Как использовать?

.../platforms$ ldd libqxcb.so

В моем случае:

# /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms# ldd libqxcb.so

    linux-vdso.so.1 (0x00007ffcedfd9000)
    libQt5XcbQpa.so.5 => /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 (0x00007f1e0d67b000)
    libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007f1e0cf12000)
    libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007f1e0c7c7000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f1e0c43e000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1e0c04d000)
    libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f1e0bd37000)
    libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f1e0baf2000)
    libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f1e0b83e000)
    libQt5DBus.so.5 => /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5 (0x00007f1e0b5b4000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f1e0b395000)
    libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f1e0b193000)
    libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f1e0ae5b000)
    libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007f1e0ac4b000)
    libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007f1e0aa43000)
    libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007f1e0a828000)
    libxcb-xkb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-xkb.so.1 (0x00007f1e0a60c000)
    libxcb-render-util.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render-util.so.0 (0x00007f1e0a408000)
    libxcb-render.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f1e0a1fb000)
    libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f1e09ff4000)
    libxcb-xfixes.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0 (0x00007f1e09dec000)
    libxcb-xinerama.so.0 => not found
    libxcb-randr.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0 (0x00007f1e09bdc000)
    libxcb-image.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-image.so.0 (0x00007f1e099d7000)
    libxcb-shm.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f1e097d4000)
    libxcb-keysyms.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-keysyms.so.1 (0x00007f1e095d1000)
    libxcb-icccm.so.4 => /usr/lib/x86_64-linux-gnu/libxcb-icccm.so.4 (0x00007f1e093cc000)
    libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f1e091a4000)
    libxcb-shape.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shape.so.0 (0x00007f1e08fa0000)
    libxkbcommon-x11.so.0 => /usr/lib/x86_64-linux-gnu/libxkbcommon-x11.so.0 (0x00007f1e08d98000)
    libxkbcommon.so.0 => /usr/lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007f1e08b59000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f1e087bb000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1e085a3000)
    libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007f1e08317000)
    libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f1e080e5000)
    libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f1e07e47000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f1e07c2a000)
    libicui18n.so.60 => /usr/lib/x86_64-linux-gnu/libicui18n.so.60 (0x00007f1e07789000)
    libicuuc.so.60 => /usr/lib/x86_64-linux-gnu/libicuuc.so.60 (0x00007f1e073d2000)
    libdouble-conversion.so.1 => /usr/lib/x86_64-linux-gnu/libdouble-conversion.so.1 (0x00007f1e071c1000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1e06fbd000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f1e0db81000)
    libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f1e06d4b000)
    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f1e06b19000)
    libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f1e068cc000)
    libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f1e066ba000)
    libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f1e064b3000)
    libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007f1e0629e000)
    libxcb-util.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-util.so.1 (0x00007f1e06098000)
    libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f1e05e94000)
    libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f1e05c8e000)
    libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007f1e05a5d000)
    libGLdispatch.so.0 => /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f1e057a7000)
    libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f1e0557a000)
    libicudata.so.60 => /usr/lib/x86_64-linux-gnu/libicudata.so.60 (0x00007f1e039d1000)
    libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f1e0374d000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f1e03545000)
    liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f1e0331f000)
    liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1 (0x00007f1e03103000)
    libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f1e02de8000)
    libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f1e02bd3000)

Как видим, все пакеты установлены, кроме одного!

Я решил проверить, установлен ли он.

# /usr/lib/x86_64-linux-gnu/qt5/plugins/platforms# aptitude search libxcb-xinerama
i   libxcb-xinerama0     - X C Binding, xinerama extension

К удивлению, он оказался установлен. Но как писал выше, его нужно просто переустановить.

# sudo aptitude reinstall libxcb-xinerama0
Следующие пакеты будут ПЕРЕУСТАНОВЛЕНЫ:          
  libxcb-xinerama0

После переустановки пакета, я повторил команду ldd и пакет уже был на месте.

/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms# ldd libqxcb.so | grep xinerama
    libxcb-xinerama.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 (0x00007fd75ff04000)

После запуска команды krita она открылась! =)

Стоит отметить, что скорее всего, каждому придется доставлять свои пакеты для решения проблем, но все они должны быть отображены в зависимостях.

Другие проблемы

Но на этом консольные команды не закончились. В терминале я увидел еще ошибки о неустановленных модулях.

$ krita
Invalid profile :  "/usr/share/color/icc/colord/Crayons.icc" "Crayon Colors"
Invalid profile :  "/usr/share/color/icc/colord/x11-colors.icc" "X11 Colors"
Delegate created
/usr/lib/x86_64-linux-gnu/krita-python-libs/krita added to PYTHONPATH
krita.general: "file:///usr/bin/..//share/krita/qmlthemes/default/theme.qml:19 module \"QtQuick\" is not installed\n"
qrc:/touchstrip.qml:1:1: module "QtQuick" is not installed

Устанавливаем этот пакет.

sudo apt install qml-module-qtquick2

И ловим пачку других ошибок и предупреждений. Каких?

  1. Ошибка в цветовых схемах монитора.
  2. Отсутствие шрифта Source Sans Pro во всех его вариантах.
  3. file:///usr/lib/x86_64-linux-gnu/qt5/qml/org/krita/sketch/components/Button.qml:84:9: QML Image: Failed to get image from provider: image://icon/opacity-decrease

Но не смотря на эти ошибки, Krita работает. Шрифты можно найти, а ошибка получения изображения. это. как я понял. проблема в самой Krita. Но расстраиваться не нужно, ведь сейчас большое время разработчики Krita уделяют именно на устранение всех ошибок программы и ее доработку.