Установка из исходных кодов
Установка из исходных кодов требуется, если вам нужны новейшие функции, если предыдущая версия устарела, если вы хотите участвовать в улучшении 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++ для некоторых операций с изображениями.
Примечание
Даже если Siril может запускаться в консоли начиная с версии 0.9.9, он по-прежнему компонуется с графическими библиотеками, поэтому вам всё равно понадобится GTK+ для компиляции и запуска программы.
Необязательные зависимости:
openmp поддержка мультипотоковости. Хотя эта зависимость опциональна, её использование настоятельно рекомендуется, поскольку это существенно улучшает производительность приложения. По умолчанию эта опция включена. Это означает, что если openmp не установлена на вашей машине, необходимо добавить
-Dopenmp=false
в настройках meson.libraw, libtiff, libjpeg, libpng, libheif поддержка импорта и экспорта изображений в форматах RAW, TIFF, JPEG, PNG and HEIF. Эти библиотеки определяются во время компиляции.
FFMS2 для нативной поддержки видео как последовательностей изображений. Это также позволяет извлекать кадры из многих видов видео для других целей, помимо астрономии. В версиях < 2.20 есть досадная ошибка, поэтому рекомендуется установить последнюю версию.
ffmpeg (или libav), предоставляющая libavformat, libavutil (>= 55.20), libavcodec, libswscale и libswresample для экспорта последовательностей mp4.
gnuplot для создания графиков фотометрии (во время компиляции не требуется).
wcslib для управления мировой системой координат, аннотаций и фотометрической калибровки цвета.
libconfig (поддержка структурированных конфигурационных файлов), используется для чтения файла конфигурации с версий до 1.0. Сейчас используется только для получения старых настроек.
libjson-glib для проверки обновлений (бесполезно, если вы создаете нерелизную версию).
Exiv2 для управления метаданными изображения.
libcurl ИЛИ glib-networking с его HTTP-серверной частью для удалённых операций, таких как проверка обновлений, запросы на астрометрию и фотометрию.
Зависимости для компиляции
Для установки из исходных кодов, вам необходимо установить базовые пакеты разработки:
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
, соответственно.
Список всех доступных опций конфигурации приведён ниже.
Опция |
Тип |
Значение |
Choices |
Описание |
---|---|---|---|---|
relocatable-bundle |
combo |
platform-default |
[ 'yes', 'no', 'platform-default' ] |
сборка с использованием ресурсов, которые считаются связанными под тем же префиксом |
openmp |
логический |
true |
Н/Д |
сборка с поддержкой OpenMP |
json_glib |
логический |
true |
Н/Д |
сборка с поддержкой json glib |
exiv2 |
логический |
true |
Н/Д |
сборка с поддержкой exiv2 |
libraw |
логический |
true |
Н/Д |
сборка с поддержкой LibRaw |
libtiff |
логический |
true |
Н/Д |
сборка с поддержкой TIFF |
libjpeg |
логический |
true |
Н/Д |
сборка с поддержкой JPEG |
libpng |
логический |
true |
Н/Д |
сборка с поддержкой PNG |
libheif |
логический |
true |
Н/Д |
сборка с поддержкой HEIF |
ffms2 |
логический |
true |
Н/Д |
сборка с поддержкой FFMS2 |
ffmpeg |
логический |
true |
Н/Д |
сборка с поддержкой FFmpeg |
enable-libcurl |
combo |
platform-default |
[ 'yes', 'no', 'platform-default' ] |
Использовать libcurl вместо GIO |
libconfig |
логический |
false |
Н/Д |
build with libconfig support |
criterion |
логический |
false |
Н/Д |
сборка с поддержкой criterion |
wcslib |
логический |
true |
Н/Д |
build with WCSLIB support |
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
Пакеты с обязательными зависимостями:
libfftw3-dev libgsl-dev libcfitsio-dev libgtk-3-dev libopencv-dev
libexiv2-dev
Пакеты с необязательными зависимостями:
wcslib-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 libjson-glib-dev libheif-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
Неудачи сборки
Каждый коммит в git Siril автоматически собирается в стандартной среде сборки для Linux, Windows и MacOS с использованием инфраструктуры gitlab CI. Это значит, что мы с высокой долей вероятности уверены в том, что компиляция основной ветки и отмеченных выпусков будет успешной при условии корректно настроенной среды сборки и наличии всех необходимых зависимостей.
Если вам не удаётся скомпилировать программу, это, скорее всего, свидетельствует о проблеме с вашей средой для сборки или неверно установленных зависимостях. Во многих дистрибутивах требуется отдельная установка пакетов разработки, которые содержат необходимые загловочные файлы. Проверьте сообщение CI из того коммита git, который вы пытаетесь скомпилировать. В маловероятном случае если действительно будет показан сбой сборки, будьте уверены, команда работает над его устранением. В противном случае, если конвейер CI показывает зеленые галочки, вам нужно будет просмотреть и устранить любые проблемы с вашей собственной средой сборки.
Если вы все еще считаете, что обнаружили проблему сборки, не отмеченную конвейером CI — например, если вы осуществляете сборку на другой платформе, такой как BSD, которую разработчики не используют регулярно, — тогда не стесняйтесь говорить о проблеме на gitlab.
Обратите внимание, что о проблеме следует сообщать только в отношении основной ветки или отмеченных выпусков. Если вы тестируете новые функции в запросах на слияние, пожалуйста, оставьте отзыв в комментариях к соответствующему запросу.