Building Sigil на Linux с Qt6
Системы типа Arch (и его производных) или более новые Системы типа Debian 12 или Ubuntu 23.04 или более новые
Если вам нужны инструкции по сборке на системах, которые не предоставляют Qt6, обратитесь к документации Building_on_Linux_older.
Требования для сборки Sigil на новых Linux-системах Arch Linux, Debian 12 и Ubuntu 23.04 должны быть установлены полностью из репозиториев вашей системы.
Чтобы собрать Sigil на новых системах Linux, вам необходимо выполнить следующие действия:
Пользователи Arch Linux должны использовать команды pacman:
sudo pacman -S
В то время как пользователи дистрибутивов на основе Debian должны использовать команды apt-get:
sudo apt-get install
Прошу прощения за то, что не знаю всех эквивалентов yum/emerge. Это не пренебрежение — я могу вас заверить.
На системах типа Arch вы можете использовать:
sudo pacman -S base-devel git
На дистрибутивах на базе Debian вы можете использовать:
sudo apt-get install build-essential git
чтобы получить практически всё необходимое для настройки/компиляции/установки проектов на C++. На других версиях Linux вам нужно убедиться, что у вас установлены gcc/g++ и «make».
Опять же: sudo pacman -S cmake получит то, что вам нужно в системах типа Arch.
и sudo apt-get install cmake получат то, что вам нужно на дистрибутивах Debian.
Если ваши репозитории не предоставляют хотя бы Qt6.2.2 (а более реалистично 6.4+), используйте документацию Building_on_Linux_older для Qt5.
Для получения требований Sigil к Qt6 на Arch используйте sudo pacman -S следующих пакетов:
Следующая команда может быть скопирована и вставлена для удобства в системах на базе Arch:
sudo pacman -S qt6-svg qt6-webengine qt6-tools qt6-5compat
На дистрибутивах на основе Debian используйте sudo apt-get install следующих пакетов.
Следующая команда может быть скопирована и вставлена для удобства на дистрибутивы на основе Debian:
sudo apt-get install qt6-webengine-dev qt6-webengine-dev-tools qt6-base-dev-tools qt6-tools-dev qt6-tools-dev-tools qt6-l10n-tools qt6-5compat-dev libqt6svg6-dev libqt6webenginecore6-bin
Примечание: на дистрибутивах на основе Debian вам также может потребоваться установить пакет libgl1-mesa-dev, если cmake жалуется на отсутствующие заголовки и/или включения OpenGL.
Sigil предоставит дополнительные сторонние библиотеки, если вы ничего не сделаете, но большинство (если не все) сторонних зависимостей Sigil должны быть доступны в ваших репозиториях программного обеспечения. Если вы хотите использовать их на Arch, используйте sudo pacman -S следующих пакетов.
Следующая команда может быть скопирована и вставлена для удобства на системы на базе Arch:
sudo pacman -S hunspell pcre2 minizip
Если вы хотите использовать их в Debian, используйте sudo apt-get install следующих пакетов.
Следующая команда может быть скопирована и вставлена для удобства на дистрибутивы на основе Debian:
sudo apt-get install libhunspell-dev libpcre2-dev libminizip-dev
Если вы устанавливаете их, не забудьте использовать опцию -DUSE_SYSTEM_LIBS=1 при настройке Sigil с помощью cmake позже. В противном случае процесс сборки проигнорирует их и предоставит/соберёт свои собственные.
Получение Python 3.6 (более реалистично 3.9+)
На Arch sudo pacman -S (как минимум) следующие пакеты:
Следующую команду можно скопировать и вставить для удобства на системах на базе Arch:
sudo pacman -S python python-lxml python-six python-css-parser python-dulwich
В Debian sudo apt-get install следующие пакеты:
Следующая команда может быть скопирована и вставлена для удобства в системах на основе Debian:
sudo apt-get install python3-dev python3-pip python3-lxml python3-six python3-css-parser python3-dulwich
Это всё, что вам нужно для того, чтобы Sigil «заработал», но если вы хотите использовать плагины Sigil, которые разрабатывают люди, вам также потребуется установить «стандартные» модули, поставляемые с двоичной версией Sigil для Windows и OS X.
Все они должны быть установлены с помощью sudo pacman -S в системах на базе Arch.
Следующую команду можно скопировать и вставить для удобства в Arch:
sudo pacman -S tk pyside6 python-html5lib python-regex python-pillow python-cssselect python-chardet
В системах на основе Debian все они должны быть установлены с помощью sudo apt-get install
.
Следующая команда может быть скопирована и вставлена для удобства в Debian:
sudo apt-get install python3-pil.imagetk python3-html5lib python3-regex python3-pillow python3-cssselect python3-chardet
Требование PySide6 для многих сторонних плагинов недоступно через пакеты, поддерживаемые дистрибутивом, в системах на основе Debian на момент написания этой статьи). Его можно установить через PyPi.org с pip (или pip3), если ваш дистрибутив всё ещё позволяет использовать pip для установки пакетов в системную среду Python. Возможно, вам придётся изучить, как работать с (или обойти) новые правила PEP 668, которые принимают дистрибутивы. У нас нет времени или желания направлять людей в этом отношении.
Если у вас возникнут проблемы с установкой с помощью sudo pacman -S (или sudo apt-get install), вы можете использовать pip для их установки.
Получение исходного кода Sigil
Вы можете клонировать репозиторий Github Sigil:
git clone https://github.com/Sigil-Ebook/Sigil.git
Или вы можете загрузить конкретный выпуск tarball/zipfile со страницы выпусков Sigil на Github.
Я рекомендую последний метод, так как версия репозитория github может не всегда быть стабильной в любой момент (хотя мы стараемся не оставлять её сломанной).
Распакуйте исходный код. Переименуйте верхний каталог («Sigil-0.X.X», если вы скачали файл Sigil-0.X.X-Code.zip) во что-нибудь полезное, например «sigil-src». Если только вам не нравится печатать смешанный регистр в терминале.
Прежде всего... вы не собираете в исходном каталоге Sigil. Вы делаете всю сборку в отдельном каталоге «build». Итак, на том же уровне каталогов, что и исходный каталог Sigil (я переименовал его в «sigil-src» на предыдущем шаге; внесите соответствующие изменения, если вы этого не сделали), создайте новый каталог под названием «sigil-build». Остальные инструкции предполагают, что оба ваших каталога исходного кода Sigil (я назвал его «sigil-src» в предыдущем шаге; настройте соответствующим образом, если вы этого не делали) и ваш каталог сборки Sigil («sigil-build») находятся на корневом уровне вашего домашнего (~) каталога пользователя.
Итак, сначала откройте терминал и перейдите в каталог sigil-build:
cd ~/sigil-build
Затем выполните команду: Настройка Sigil с помощью команды cmake
Команда для настройки Sigil:
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../sigil-src
Если ошибок нет, вы готовы к сборке.
Начиная с версии Sigil 2.0.2, параметр -DUSE_QT6=1 считается заданным по умолчанию и больше не используется. Если вы хотите собрать Sigil с Qt5, вам нужно добавить -DUSE_QT5=1 в команду настройки cmake.
По умолчанию префикс установки — /usr/local. Если вы хотите изменить место установки, это можно сделать, добавив опцию -DCMAKE_INSTALL_PREFIX в указанную выше команду cmake. Например:
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/a/different/install/prefix -DCMAKE_BUILD_TYPE=Release ../sigil-src
Вы также можете настроить или переопределить место установки файлов поддержки Sigil (по умолчанию — <CMAKE_INSTALL_PREFIX>/share), используя опцию -DSHARE_INSTALL_PREFIX (новичкам не рекомендуется).
Если cmake не может автоматически найти необходимые компоненты Python 3.4 (или более поздней версии) (например, если вы установили их вручную в необычном месте или хотите использовать другую версию Python), вам может потребоваться указать cmake, где именно находятся эти компоненты. Для этого используйте:
-DPYTHON_LIBRARY=<полный путь к общей библиотеке python3.6 (или более поздней версии)> (обычно что-то вроде /usr/lib/libpython36.so)
-DPYTHON_INCLUDE_DIR=<полный путь к каталогу, где можно найти заголовочные файлы python3.6 (или более поздней версии)> (например /usr/include/python3.6)
-DPYTHON_EXECUTABLE=<полный путь к интерпретатору python3.6 (или более поздней версии)> (например /usr/bin/python)
После того как команда cmake настроена без ошибок, соберите Sigil, используя:
make (или make -j4, если у вас многоядерные процессоры)
Если всё прошло успешно, установите Sigil с помощью:
sudo make install
Если вы настроили установку с использованием стандартного префикса, вы можете запустить программу, введя «sigil» (без кавычек) в терминале. Если вы настроили установку в другом месте, возможно, потребуется создать ссылку на скрипт запуска Sigil (<CMAKE_INSTALL_PREFIX>/bin/sigil) в каталоге, который находится на вашем пути. Также есть файл .desktop в <SIGIL_SHARE_PREFIX>/share/applications
, который можно связать с вашим рабочим столом. Sigil также должен появиться в меню вашей среды рабочего стола (в разделе Office и/или Accessories). Возможно, потребуется выйти из системы и снова войти, чтобы пункты меню стали видимыми после установки (можно также принудительно обновить меню, если установлен пакет xdg-utils, выполнив команду «xdg-desktop-menu forceupdate» в терминале).
Чтобы проверить, полностью ли функционирует Python-фреймворк плагинов Sigil версии 3.6+, выполните следующие действия:
Существует несколько параметров конфигурации и переменных среды, которые могут настроить процесс сборки и/или работы Sigil. Я уже говорил о некоторых параметрах cmake, но упомяну их здесь ещё раз вместе с остальными — с кратким объяснением их назначения.
-DUSE_QT5=(0|1) По умолчанию установлено значение 0 (используется Qt6). Сборка Sigil с использованием Qt5 или Qt6.
-DQt6_DIR=<путь>
Настраивает cmake для использования установки Qt6, отличной от обычной системной версии Qt5 (например, /opt/Qt6.2.3/lib/cmake/Qt6 — путь всегда должен заканчиваться на /lib/cmake/Qt6).
-DCMAKE_INSTALL_PREFIX=<путь>
Настраивает префикс, куда будет установлена Sigil (по умолчанию /usr/local). -DSHARE_INSTALL_PREFIX=<путь>
— определяет префикс, в который будут установлены файлы поддержки Sigil (по умолчанию это /usr/local, что означает, что файлы поддержки будут установлены в /usr/local/share/sigil).
-DCMAKE_INSTALL_LIBDIR=(lib|lib64) — используется для переопределения GnuInstallDirs, если он не выбирает правильный каталог lib для вашего дистрибутива.
-DUSE_SYSTEM_LIBS=(0|1) — указывает cmake попытаться использовать системные библиотеки при сборке Sigil вместо библиотек, входящих в состав Sigil в каталоге 3rdParty. Если системная версия сторонней программы не может быть найдена, Sigil возвращается к версии, входящей в комплект (если только также не указано -DSYSTEM_LIBS_REQUIRED=1, по умолчанию 0).
-DSYSTEM_LIBS_REQUIRED=(0|1) — при использовании вместе с -DUSE_SYSTEM_LIBS=1 процесс сборки Sigil завершится неудачно, если все необходимые библиотеки не могут быть найдены в системе, вместо того чтобы вернуться к версиям, входящим в комплект (по умолчанию 0).
-DDISABLE_UPDATE_CHECK=(0|1) — по умолчанию равен 0. Используйте -DDISABLE_UPDATE_CHECK=1, чтобы отключить встроенную онлайн-проверку обновлений. В основном используется пользователями *nix-дистрибутивов, пакеты Sigil которых всё равно не могут использовать новые загрузки выпусков.
-DINSTALL_BUNDLED_DICTS=(0|1) — значение по умолчанию равно 1. Может использоваться для включения/отключения установки словарей Hunspell, входящих в комплект, которые используются для проверки орфографии. Если эта функция отключена (-DINSTALL_BUNDLED_DICTS=0), то будет произведён поиск подходящих словарей в стандартном расположении системы проверки орфографии /usr/share/hunspell. Если необходимо искать дополнительные пути системы для словарей, их можно добавить с помощью опции -DEXTRA_DICT_DIRS. Установка значения 0 потребует от вас вручную установить языковые словари hunspell (из ваших программных репозиториев) самостоятельно (например, sudo pacman -S hunspell-en-us
).
-DEXTRA_DICT_DIRS=<путь1>
:<путь2>
— пути, которые следует искать для подходящих словарей проверки орфографии (в дополнение к /usr/share/hunspell). Несколько путей должны быть разделены двоеточиями. Эта опция актуальна только в том случае, если также указано -DINSTALL_BUNDLED_DICTS=0.
-DMATHJAX_DIR=<путь>
Только для Sigil 1.9.10 и более ранних версий! — если вы хотите использовать реализацию MathJax вашей системы вместо той, которая поставляется в комплекте с Sigil, используйте эту команду cmake при первой настройке. Для работы с Sigil требуется минимум MathJax v2.7.0. ПРИМЕЧАНИЕ: если используется -DMATHJAX_DIR=<path>
, Sigil установит скрипт конфигурации в <path>
/config/local. Этот файл необходим для правильного отображения MathML в режиме предварительного просмотра Sigil. Эта функция была добавлена между Sigil 0.9.12 и 0.9.13.
-DMATHJAX3_DIR=<путь>
Только для Sigil 1.9.20 и более поздних версий! — если вы хотите использовать реализацию MathJax вашей системы вместо той, которая поставляется в комплекте с Sigil, используйте этот параметр cmake при первой настройке. Требуется минимум MathJax версии v3.2.2 для работы с Sigil. Начиная с версии Sigil v1.9.20, для правильного рендеринга MathML в предварительном просмотре Sigil требуется MathJax 3.2.2+. Убедитесь, что ваша система MathJax соответствует этому минимальному требованию версии, прежде чем использовать эту опцию CMAKE define.
-DINSTALL_HICOLOR_ICONS=(0|1) — устанавливает различные значки приложения Sigil в стандартные каталоги тем hicolor (<INSTALL_PREFIX>/share/icons/hicolor
). Значение по умолчанию — 0, которое устанавливает один значок в папку <INSTALL_PREFIX>/share/pixmap
.
-DUSE_ALT_ICONS=(0|1) — значение по умолчанию равно 0. Установите/используйте альтернативные значки приложения Sigil бирюзового цвета. Вам всё ещё нужно указать -DINSTALL_HICOLOR_ICONS=1, если вы хотите, чтобы все альтернативные значки бирюзового цвета были установлены в тему hicolor. (После Sigil версии 2.0 и Qt6 значок бирюзового цвета является стандартным)
Следующие три параметра cmake используются для ручного указания того, какой Python3 вы хотите использовать при сборке Sigil, вместо использования включённых утилит cmake для автоматического поиска подходящей версии.
-DPYTHON_LIBRARY=<путь к общей библиотеке python3.x>
-DPYTHON_INCLUDE_DIR=<путь к каталогу, где можно найти заголовочные файлы python3.x>
-DPYTHON_EXECUTABLE=<путь к интерпретатору python3.x>
-DTRY_NEWER_FINDPYTHON3=(0|1) — значение по умолчанию равно 0. Если вы используете cmake 3.18 или выше, вы можете захотеть принять... Преимущества нового модуля FindPython3
Если это так, то указанные выше директивы используются для определения конкретных версий Python3 следующим образом:
-DPython3_LIBRARIES=путь к общей библиотеке python3.x
-DPython3_INCLUDE_DIRS=путь к каталогу, где можно найти заголовочные файлы python3.x
-DPython3_EXECUTABLE=путь к интерпретатору python3.x
-DBUILD_PATCHED_LIBXML2=(0|1) Некоторые новые версии libxml2 имеют ошибку, которая приводит к тому, что QtWebKit дважды отображает html сущности. Добавление -DBUILD_PATCHED_LIBXML2=1 в команду cmake клонирует репозиторий git libxml2, проверяет определённый коммит, исправляет исходный код, собирает его и устанавливает вместе с Sigil (не влияет на системную версию libxml2). Требуется установить пакеты git, libtool, autoconf и automake (а также иметь работающее подключение к интернету). Cmake должен уведомить о любых отсутствующих программах. По умолчанию НЕ создаётся исправленная версия libxml2 (-DBUILD_PATCHED_LIBXML2=0).
Следующие переменные среды могут быть установлены во время выполнения, чтобы повлиять на работу Sigil после сборки/установки. Обычно они устанавливаются путём ручного редактирования сценария запуска Sigil (CMAKE_INSTALL_PREFIX
/bin/sigil).
SIGIL_PREFS_DIR — изменяет, где Sigil ищет и обновляет данные пользовательских настроек. Необходимо указать полный путь к директории, в которой у пользователя есть права на запись.
SIGIL_EXTRA_ROOT — удобно для перемещения файлов поддержки Sigil. Например, вы можете переместить каталог <CMAKE_SHARE_PREFIX>/share/sigil
куда угодно. Вам просто нужно установить SIGIL_EXTRA_ROOT в путь, куда вы переместили <CMAKE_SHARE_PREFIX>/share/sigil
.
SIGIL_DICTIONARIES — используется для указания Sigil, какие каталоги следует искать для файлов словарей Hunspell. Несколько каталогов можно указать, разделяя пути двоеточием. например, SIGIL_DICTIONARIES="/usr/share/hunspell" или SIGIL_DICTIONARIES="/usr/share/hunspell:/usr/share/hunspellextra". Установка этой переменной во время выполнения переопределит все пути поиска словарей во время компиляции (за исключением любых пользовательских словарей, вручную добавленных в расположение hunspell_dictionary в их каталоге предпочтений).
FORCE_SIGIL_DARKMODE_PALETTE — если эта переменная установлена во время выполнения, она сообщает Sigil игнорировать любые определённые темы/стили платформы (QT_QPA_PLATFORMTHEME или QT_STYLE_OVERRIDE) и использовать тёмную цветовую палитру, предоставленную Sigil (Доступно только в Sigil v1.1–v2.1. Стратегии тематической платформы начинаются только с Sigil v2.2).
SIGIL_ICON_SCALE_FACTOR — допустимые значения: от 1,0 до 3,0. Значение по умолчанию (без установленной переменной) равно 1,8. Sigil масштабирует свои значки меню на основе размера шрифта. Иногда это может привести к тому, что значки будут слишком большими (или слишком маленькими) в зависимости от системной темы Qt. Используйте эту переменную, чтобы настроить размер значка, если это необходимо. (Работает только с Sigil v0.9.7 и более ранними версиями; v0.9.8 имеет настройку предпочтений для настройки значков)
SKIP_SIGIL_UPDATE_CHECK — определение этой переменной (любому значению) заставит Sigil пропустить онлайн-проверку более новой версии.
Сценарий запуска Sigil также устанавливает переменную среды SIGIL_SHARE_PREFIX, но она автоматически устанавливается равной параметру времени сборки cmake SHARE_INSTALL_PREFIX. Было бы неразумно изменять эту переменную окружения. Вместо этого используйте переменную среды SIGIL_EXTRA_ROOT, если вам нужно изменить местоположение файлов поддержки Sigil после создания Sigil.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )