Установка из исходных кодов
Установка из исходных кодов требуется, если вам нужны новейшие функции, если предыдущая версия устарела, если вы хотите участвовать в улучшении Siril или не хотите использовать все зависимости.
Получение исходных кодов
Исходный код хранится в репозитории git, который в первый раз вы можете загрузить с помощью этой команды:
git clone --recurse-submodules https://gitlab.com/free-astro/siril.git
И обновить его в последующем, используя следующие команды в корневом каталоге siril:
git pull
git submodule update --recursive
Зависимости
Siril зависит от ряда библиотек, большинство из которых должны быть доступны в вашей операционной системе, если она достаточно современная. Названия пакетов, специфичных для операционных систем, перечислены в каждом разделе ниже. Обязательными зависимостями являются:
gtk+3 (библиотека графического интерфейса пользователя), по крайней мере, версия 3.20.
adwaita-icon-theme (иконки) поддержка внешнего вида приложений gtk.
cfitsio (поддержка изображений FITS).
fftw (Библиотека дискретных преобразований Фурье).
gsl (The GNU Scientific Library), версии 1 или 2 начиная с релиза 0.9.1 или ревизии SVN 1040.
OpenCV и компилятор C++ для некоторых операций с изображениями.
Little CMS система управления цветом с открытым исходным кодом
wcslib для управления мировой системой координат, аннотаций и фотометрической калибровки цвета.
gtksourceview4 для многострочного редактирования текста. GtkSourceView предоставляет подсветку синтаксиса, операции отмены/повтора, загрузку и сохранение файлов, операции поиска и замены, систему дополнения при наборе, печать, отображение нумерации строк и другие функции, обычные для редактора исходного кода.
Примечание
Даже если Siril может запускаться в консоли начиная с версии 0.9.9, он по-прежнему компонуется с графическими библиотеками, поэтому вам всё равно понадобится GTK+ для компиляции и запуска программы.
Необязательные зависимости:
openmp поддержка мультипотоковости. Хотя эта зависимость опциональна, её использование настоятельно рекомендуется, поскольку это существенно улучшает производительность приложения. По умолчанию эта опция включена. Это означает, что если openmp не установлена на вашей машине, необходимо добавить
-Dopenmp=falseв настройках meson.libraw, libtiff, libXISF, libjpeg, libjxl, libpng, libheif поддержка импорта и экспорта изображений в форматах RAW, TIFF, XISF, JPEG, JPEG XL, PNG и HEIF. Эти библиотеки определяются во время компиляции.
libraw, libXISF, libheif поддержка импорта файлов в форматах RAW, XISF, HEIF и AVIF. Эти библиотеки определяются во время компиляции.
FFMS2 для нативной поддержки видео как последовательностей изображений. Это также позволяет извлекать кадры из многих видов видео для других целей, помимо астрономии. В версиях < 2.20 есть досадная ошибка, поэтому рекомендуется установить последнюю версию.
ffmpeg (или libav), предоставляющая libavformat, libavutil (>= 55.20), libavcodec, libswscale и libswresample для экспорта последовательностей mp4.
wcslib для управления мировой системой координат, аннотаций и фотометрической калибровки цвета.
Exiv2 для управления метаданными изображения.
libcurl для запросов при выполнении астрометрии и фотометрии.
libgit2 для поддержания локального клона репозитория siril-scripts.
Зависимости для компиляции
Для установки из исходных кодов, вам необходимо установить базовые пакеты разработки:
git, autoconf, automake, libtool, intltool, pkg-tools, make, cmake, gcc, g++
Компиляторы gcc и g++ из этого списка могут быть заменены на clang и clang++ (мы используем их для разработки), и, возможно, другими.
Пакеты autotools (autoconf, automake, возможно, некоторые другие) могут быть заменены на meson.
Типовой процесс сборки
Siril может быть скомпилирован с помощью autotools или meson.
Meson
Рекомендуемый способ это использовать meson и ninja:
meson setup _build --buildtype release
cd _build
ninja
ninja install
Для отключения некоторых зависимостей или функций, используйте опции meson -Dfeature=false или -Ddisable-feature=yes, соответственно.
Список всех доступных опций конфигурации приведён ниже.
Опция |
Тип |
Значение |
Варианты |
Описание |
|---|---|---|---|---|
relocatable-bundle |
список |
platform-default |
[ 'yes', 'no', 'platform-default' ] |
сборка с использованием ресурсов, которые считаются связанными под тем же префиксом |
openmp |
логический |
true |
Н/Д |
сборка с поддержкой OpenMP |
exiv2 |
логический |
true |
Н/Д |
сборка с поддержкой exiv2 |
libgit2 |
логический |
true |
Н/Д |
сборка с интеграцией libgit2 |
libraw |
логический |
true |
Н/Д |
сборка с поддержкой LibRaw |
libtiff |
логический |
true |
Н/Д |
сборка с поддержкой TIFF |
libjpeg |
логический |
true |
Н/Д |
сборка с поддержкой JPEG |
libjxl |
логический |
true |
Н/Д |
сборка с поддержкой JPEG XL |
libpng |
логический |
true |
Н/Д |
сборка с поддержкой PNG |
libheif |
логический |
true |
Н/Д |
сборка с поддержкой HEIF |
libXISF |
логический |
true |
Н/Д |
сборка с поддержкой XISF |
ffms2 |
логический |
true |
Н/Д |
сборка с поддержкой FFMS2 |
ffmpeg |
логический |
true |
Н/Д |
сборка с поддержкой FFmpeg |
libcurl |
логический |
true |
Н/Д |
Использовать libcurl для доступа к сети |
criterion |
логический |
false |
Н/Д |
сборка с поддержкой criterion |
flatpak-id |
строка |
Н/Д |
устанавливает flatpak-builder если компилируется flatpak |
Autotools
Компиляция с помощью autotools хорошо известна в мире Unix. После загрузки исходных кодов и установки всего необходимого, обычный способ компиляции следующий:
./autogen.sh
make
make install
возможно с правами суперпользователя для последней строки.
Возможно, вы захотите передать компилятору определенные параметры, например, такие, если бы вы хотели оптимизацию и установку в /opt вместо /usr/local, используемого по умолчанию:
CFLAGS='-mtune=native -O3' ./autogen.sh --prefix=/opt
Для запуска Siril имя команды siril или siril-cli.
Установка в Debian и подобных системах
Возможно, вы захотите создать пакет .deb вместо использования неупакованной версии, в этом случае обратитесь к этой справке. В частности, для установки зависимостей вы можете использовать команду:
apt build-dep siril
В противном случае вот список пакетов для текущей версии:
Пакеты, необходимые для компиляции системы:
autoconf automake make gcc g++ libtool intltool pkg-config cmake
Пакеты с обязательными зависимостями:
libgtk-3-dev libcfitsio-dev libfftw3-dev libgsl-dev libopencv-dev
liblcms2-dev wcslib-dev libgtksourceview-4-dev
Пакеты с необязательными зависимостями:
libcurl4-gnutls-dev libpng-dev libjpeg-dev libtiff5-dev
libraw-dev gnome-icon-theme libavformat-dev libavutil-dev libavcodec-dev
libswscale-dev libswresample-dev libgit2-dev libheif-dev
libexiv2-dev libjxl-dev liblz4-dev libpugixml-dev libxisf-dev
для поддержки видео (AVI и прочие):
libffms2-dev
Установка в Arch Linux
В AUR доступны два пакета: siril и siril-git`. Скачайте ``PKGBUILD или репозиторий, установите зависимости, запустите makepkg для создания пакета и pacman -U для его установки.
Зависимости (обязательные и несколько необязательных):
pacman -S base-devel cmake git intltool gtk3 fftw cfitsio gsl opencv
exiv2 libraw wcslib gtksourceview4
Версия LittleCMS
Для сборки Siril необходима lcms2 версии 2.14 или выше. Эта версия нужна для обеспечения оптимизации кода управления цветом. Подходящая версия доступна в Debian testing и Ubuntu 23.04. Вместе с этим, текущая версия Ubuntu LTS предоставляет более раннюю версию lcms2, что могут делать и другие дистрибутивы ОС. Если вы используете более раннюю ОС, не предоставляющую lcms2 >= 2.14, вы можете установить пакеты из более новой версии вашего дистрибутива вручную, либо вы можете установить lcms2 из исходного кода, доступного в их репозитории git.
Неудачи сборки
Каждый коммит в git Siril автоматически собирается в стандартной среде сборки для Linux, Windows и MacOS с использованием инфраструктуры gitlab CI. Это значит, что мы с высокой долей вероятности уверены в том, что компиляция основной ветки и отмеченных выпусков будет успешной при условии корректно настроенной среды сборки и наличии всех необходимых зависимостей.
Если вам не удаётся скомпилировать программу, это, скорее всего, свидетельствует о проблеме с вашей средой для сборки или неверно установленных зависимостях. Во многих дистрибутивах требуется отдельная установка пакетов разработки, которые содержат необходимые загловочные файлы. Проверьте сообщение CI из того коммита git, который вы пытаетесь скомпилировать. В маловероятном случае если действительно будет показан сбой сборки, будьте уверены, команда работает над его устранением. В противном случае, если конвейер CI показывает зеленые галочки, вам нужно будет просмотреть и устранить любые проблемы с вашей собственной средой сборки.
Если вы все еще считаете, что обнаружили проблему сборки, не отмеченную конвейером CI — например, если вы осуществляете сборку на другой платформе, такой как BSD, которую разработчики не используют регулярно, — тогда не стесняйтесь говорить о проблеме на gitlab.
Обратите внимание, что о проблеме следует сообщать только в отношении основной ветки или отмеченных выпусков. Если вы тестируете новые функции в запросах на слияние, пожалуйста, оставьте отзыв в комментариях к соответствующему запросу.
Системный Python
Если вы компилируете Siril самостоятельно, удостоверьтесь, что у вас установлена рабочая система Python, включая pip и venv. Обратите внимание на последний пункт, поскольку в некоторых системах (по крайней мере, в системах на базе Debian / Ubuntu, возможно, и в других) Python разделен на множество пакетов, и вы должны убедиться, что пакеты, предоставляющие pip и venv, установлены.