1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-sigil

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Building_on_Linux.md 32 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 10:08 7faa04d

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, вам необходимо выполнить следующие действия:

  1. Получить инструмент для сборки Linux с компилятором C++17 (рекомендуется gcc 7.x.x или выше).
  2. Установить CMake (версия 3.16 или выше).
  3. Установить Qt6.2.2 или выше (более реалистично с QtWebEngine).
  4. Установить сторонние зависимости (дополнительный шаг).
  5. Установить Python 3.6 (более реалистичен 3.9+).
  6. Скачать исходный код Sigil (скачанный архив/zip-файл или git-клон).
  7. Собрать и установить Sigil.
  8. Протестировать фреймворк плагинов Sigil.
  9. Дополнительные действия.

Пользователи Arch Linux должны использовать команды pacman:

sudo pacman -S

В то время как пользователи дистрибутивов на основе Debian должны использовать команды apt-get:

sudo apt-get install

Прошу прощения за то, что не знаю всех эквивалентов yum/emerge. Это не пренебрежение — я могу вас заверить.

Среда сборки Linux

На системах типа Arch вы можете использовать:

sudo pacman -S base-devel git

На дистрибутивах на базе Debian вы можете использовать:

sudo apt-get install build-essential git

чтобы получить практически всё необходимое для настройки/компиляции/установки проектов на C++. На других версиях Linux вам нужно убедиться, что у вас установлены gcc/g++ и «make».

Получение CMake

Опять же: sudo pacman -S cmake получит то, что вам нужно в системах типа Arch.

и sudo apt-get install cmake получат то, что вам нужно на дистрибутивах Debian.

Получение Qt6

Если ваши репозитории не предоставляют хотя бы Qt6.2.2 (а более реалистично 6.4+), используйте документацию Building_on_Linux_older для Qt5.

Для получения требований Sigil к Qt6 на Arch используйте sudo pacman -S следующих пакетов:

  • qt6-svg
  • qt6-webengine
  • qt6-tools
  • qt6-5compat

Следующая команда может быть скопирована и вставлена для удобства в системах на базе Arch:

sudo pacman -S qt6-svg qt6-webengine qt6-tools qt6-5compat

На дистрибутивах на основе Debian используйте sudo apt-get install следующих пакетов.

  • qt6-webengine-dev
  • qt6-webengine-dev-tools (предоставляет двоичный файл qwebengine_convert_dict)
  • qt6-base-dev-tools
  • qt6-tools-dev
  • qt6-tools-dev-tools
  • qt6-l10n-tools (предоставляет двоичный файл lconvert)
  • qt6-5compat-dev (используйте libqt6core5compat6-dev вместо этого на Ubuntu 22.04 и более ранних версиях)
  • libqt6svg6-dev
  • libqt6webenginecore6-bin (предоставляет исполняемый файл времени выполнения QtWebEngineProcess)

Следующая команда может быть скопирована и вставлена для удобства на дистрибутивы на основе 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 следующих пакетов.

  • hunspell
  • pcre2
  • minizip

Следующая команда может быть скопирована и вставлена для удобства на системы на базе Arch:

sudo pacman -S hunspell pcre2 minizip

Если вы хотите использовать их в Debian, используйте sudo apt-get install следующих пакетов.

  • libhunspell-dev
  • libpcre2-dev
  • libminizip-dev

Следующая команда может быть скопирована и вставлена для удобства на дистрибутивы на основе Debian:

sudo apt-get install libhunspell-dev libpcre2-dev libminizip-dev

Если вы устанавливаете их, не забудьте использовать опцию -DUSE_SYSTEM_LIBS=1 при настройке Sigil с помощью cmake позже. В противном случае процесс сборки проигнорирует их и предоставит/соберёт свои собственные.

Python

Получение Python 3.6 (более реалистично 3.9+)

На Arch sudo pacman -S (как минимум) следующие пакеты:

  • python
  • python-lxml
  • python-six
  • python-css-parser
  • python-dulwich (python-dulwich требует установки модулей urllib3 и certifi)

Следующую команду можно скопировать и вставить для удобства на системах на базе Arch:

sudo pacman -S python python-lxml python-six python-css-parser python-dulwich

В Debian sudo apt-get install следующие пакеты:

  • python3-dev
  • python3-pip
  • python3-lxml
  • python3-six
  • python3-css-parser
  • python3-dulwich (dulwich требует, чтобы модули urllib3 и certifi были установлены)

Следующая команда может быть скопирована и вставлена для удобства в системах на основе 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.

  • tk
  • pyside6
  • python-html5lib
  • python-regex
  • python-pillow
  • python-cssselect
  • python-chardet

Следующую команду можно скопировать и вставить для удобства в Arch:

sudo pacman -S tk pyside6 python-html5lib python-regex python-pillow python-cssselect python-chardet

В системах на основе Debian все они должны быть установлены с помощью sudo apt-get install.

  • python3-tk
  • python3-html5lib
  • python3-regex
  • python3-pil.imagetk
  • python3-cssselect
  • python3-chardet

Следующая команда может быть скопирована и вставлена для удобства в 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

Получение исходного кода 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

Прежде всего... вы не собираете в исходном каталоге 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

Если всё прошло успешно, установите 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

Чтобы проверить, полностью ли функционирует Python-фреймворк плагинов Sigil версии 3.6+, выполните следующие действия:

  1. Загрузите testplugin_v019.zip с https://github.com/Sigil-Ebook/Sigil/raw/master/docs/testplugin_v019.zip.
  2. Откройте Sigil и перейдите к обычному почти пустому шаблону epub, который он генерирует при открытии.
  3. Убедитесь, что у вас настроен интерпретатор Python версии 3.4+.
  4. Используйте кнопку «Добавить плагин», чтобы перейти к файлу testplugin_vXXX.zip, а затем нажмите «ОК», чтобы закрыть диалоговое окно «Управление плагинами».
  5. Используйте меню «Плагины» → «Редактировать» → «testplugin», чтобы запустить плагин, и нажмите кнопку «Старт», чтобы выполнить его.
  6. Проверьте окно вывода плагина на наличие результатов тестирования отсутствующих или неработающих плагинов. Установите недостающие модули Python с помощью системы управления пакетами вашей системы или pip.

Дополнительные сведения

Существует несколько параметров конфигурации и переменных среды, которые могут настроить процесс сборки и/или работы Sigil. Я уже говорил о некоторых параметрах cmake, но упомяну их здесь ещё раз вместе с остальными — с кратким объяснением их назначения.

Параметры 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-sigil.git
git@api.gitlife.ru:oschina-mirror/mirrors-sigil.git
oschina-mirror
mirrors-sigil
mirrors-sigil
master