Установка FSM
Готовые deb-пакеты (Debian, может быть ещё и Ubuntu с Linux Mint)
На данный момент осуществляется компиляция deb-пакетов FSM для следующих архитектур:
x86_64— основная на данный момент поддерживаемая архитектура, на которой происходит разработка и тестирование программы;i686— на случай, если кто-то захочет запустить программу на устаревшем железе (хотя FSM сам по себе довольно жручая штука как из-за примененияiced1, использующего аппаратное ускорение, так и из-за моего непрофессионализма в IT, не позволяющего сделать хоть сколько-нибудь качественный софт);aarch64— на случай, если вы захотите запустить программу на Raspberry/Orange/etc. Pi, работающих под управлением Raspbian или Armbian Linux.
Во всех трёх случаях программа динамически линкуется со стандартной библиотекой C glibc. Также программа требует наличия в системе Xorg/Wayland, а также поддержки Vulkan (для iced-бекенда wgpu, использующего аппаратное ускорение).
Два способа установки deb-пакетов FSM:
Первый способ — скачивание нужного пакета из вкладки “Releases” репозитория проекта на GitHub. Например, скачаю deb-пакет FSM v0.5.1, собранного для архитектуры x86_64:
wget https://github.com/mskrasnov/FSM/releases/download/v0.5.1/ferrix-app_0.5.1-1_amd64.deb
Внимание: в Debian названия архитектур x86_64 и AArch64 очень похожи:
amd64иarm64соответственно. Так что при скачивании смотрите, что именно скачиваете.
Далее устанавливаю его с помощью dpkg:
sudo dpkg -i ./ferrix-app_0.5.1-1_amd64.deb
Если у вас в системе уже установлены все зависимости, то установка пройдёт успешно. В случае ошибки же вам нужно будет установить все пакеты, которые dpkg не нашёл. Либо же воспользоваться apt, который самостоятельно удовлетворит все зависимости:
# Если не хотите использовать dpkg - используйте apt
sudo apt install ./ferrix-app_0.5.1-1_amd64.deb
Из минусов этого способа отмечу лишь необходимость самостоятельно проверять обновления и в случае их наличия — самостоятельно скачивать новую версию пакета и вручную его устанавливать.
Второй способ заключается в подключении APT-репозитория (в теории поддерживается Debian 12, но может быть и другие версии Debian тоже; лично я этот метод не тестировал). Плюс такого метода в том, что после выхода каждой новой версии FSM я публикую скомпилированные пакеты не только на GitHub, но и на платформу GitVerse, которая предоставляет возможность подключения APT-репозиториев с пакетами проекта. Минус — некоторые параноики могут сомневаться в том, что FSM, выложенный на очечественную площадку, будет включать в себя персонального ФСБшника-тащмайора.
Для подключения APT-репозитория с FSM выполните инструкции, указанные ниже:
https://gitverse.ru/mskrasnov/-/packages/debian/ferrix-app/0.5.1-1?tab=packages
Далее обновите списки пакетов и установите FSM:
sudo apt update
sudo apt install ferrix-app
Самостоятельная компиляция из исходников
Опять же — инструкцию представляю для ОС Debian GNU/Linux, если у вас другая ОС, то расхождения максимум в части “Установка зависимостей”, т.к. названия пакетов от системе к системе могут различаться. Общая последовательность действий такова: ставим необходимые для сборки зависимости (ld из состава Binutils, gcc из состава GCC, make и инструментарий языка Rust – rustc и cargo), а также зависимости, необходимые для работы программы (libxkbcommon, libXcursor, а также библиотеки для Vulkan, если хотите использовать аппаратное ускорение для отрисовки интерфейса2), ну а потом компилируем программу и устанавливаем её в систему.
Для начала установите необходимые для сборки зависимости:
sudo apt install -y build-essential git
Потом вам нужно установить инструментарий языка Rust (rustc, cargo). Не советую использовать пакеты с этими программами, которые уже есть в репозиториях Debian Linux, так как эти программы имеют довольно старые версии и сборка FSM устаревшими инструментами может не увенчаться успехом (например, для iced нужна довольно новая версия rustc – 1.92).
Для установки инструментария Rust (по умолчанию бинарники будут установлены в домашнюю директорию конкретного пользователя) введите команды:
# Взято с https://rust-lang.org/learn/get-started/
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Ответьте на пару вопросов и подождите, пока оно установится
export PATH=$PATH:$HOME/.cargo/bin/
Клонируйте себе репозиторий программы:
git clone https://github.com/mskrasnov/FSM
cd FSM
И начните сборку:
make build
# Или `make debug`, если хотите собирать в режиме `debug`
Если хотите сменить триплет со стандартного (x86_64-unknown-linux-gnu) на кастомный (для сборки для другой архитектуры), то явно укажите его:
make TARGET="aarch64-unknown-linux-gnu"
Внимание: Если собираете FSM для другой архитектуры, то явное указание
TARGETнеобходимо и в остальных командахmake, идущих далее.
По умолчанию сборка программы будет осуществляться в режиме release. Это будет происходить довольно долго (на моём ПК с процессором AMD Ryzen 5 2500U “чистая” сборка FSM и всех его зависимостей занимает 8-10 минут, а сборка только FSM, если все зависимости уже скомпилированы в районе двух минут). На выходе получите бинари ./target/x86_64-unknown-linux-gnu/release/ferrix-{app,polkit}. Но не спешите их копировать в системные каталоги с остальными бинарниками, так как нам требуется установить в систему ещё несколько файлов. Поэтому вместо этого используйте команду:
make install
По умолчанию программа установится в /usr/{bin,share}/, но если вы хотите сменить префикс установки с / на другой, то явно укажите его:
make DESTDIR=$PWD/AppDir install
В таком случае программа установится в $PWD/AppDir/usr/{bin,share}/.
Помимо бинарников make установит в систему иконки программы и FSM.desktop-файл для возможности запуска FSM из главного меню используемого вами DE.
-
Это immediate-GUI библиотека. ↩
-
Что даёт аппаратное ускорение? Если оно доступно, то библиотека iced, которую я использую для построения GUI, будет использовать бекенд
wgpuдля, собственно, рисования GUI. Плюс в том, что в таком случае FSM будет работать довольно быстро, особенно там, где куча таблиц с динамически изменяющимися данными (ну либо просто на страницах с большими таблицами), также будут корректно отрисовываться графики на странице “System Monitor” (“Системный монитор”). Из минусов — FSM будет кушать много оперативки, например, на LMDE 6 (Debian 12) в X-сессии Cinnamon от кушает от 32 Мбайт ОЗУ, а в Altlinux 11 Workstation в Wayland-сессии GNOME кушает уже от 40 Мбайт (но и проверял потребление памяти я в разных системах и разными инструментами, так что имеют место быть в т.ч. и погрешности измерения, но общая картина видна). Без аппаратного ускоренияicedбудет использовать бекендtiny-skia, который имеет весьма посредственную производительность и некие проблемы отрисовки динамичных сцен, так что если вы используете software rendering, то прокрутка некоторых таблиц будет чутка подтормаживать, а также графики системного монитора будут отображаться некорректно. Но в таком случае со старта программа будет потреблять около 11-15 Мбайт ОЗУ. ↩