Советы по GNU/Linux – Telegram
Советы по GNU/Linux
155 subscribers
203 photos
6 videos
43 files
314 links
Канал, посвящённый GNU/Linux и свободному ПО.

Другие наши каналы:

@calmira_gnu_linux - чат по дистрибутиву Calmira GNU/Linux-libre, который разрабатывает один из админов этого канала
Download Telegram
Немного про AppImage. Часть 2. Сборка AppImage.

Сегодня поговорим про сборку AppImage пакетов. Именно сборку ПО из исходного кода я пропущу, ибо это достаточно обширная тема, которую нужно затрагивать отдельно. Но как правило, вся сборка пакета из исходного кода сводится к следующим действиям:

1. Скачивание и распаковка архивов с исходным кодом ПО.
2. Конфигурирование пакета.
3. Сборка пакета (компиляция из исходного кода двоичных файлов в формате ELF, генерация иных необходимых файлов).
4. Установка пакета.

Устанавливать пакет можно либо в саму систему (либо в /, либо в /usr, либо в /opt), а можно и в другую директорию, если это поддерживается как используемой системой сборки, так и сборочными инструкциями пакета непосредственно. И вот собранный из исходного кода пакет нам нужно установить не в систему, а в отдельную директорию, к которой мы в будущем будем иметь доступ.

Для сборки пакета в формате AppImage нам нужно соблюсти следующую структуру каталогов:

APP.AppDir/
APP.AppDir/AppRun
APP.AppDir/app.desktop
APP.AppDir/app.png
APP.AppDir/APPDIR/файлы_программы

Здесь APP - это имя программы, которую мы собираем. Поэтому, если вы собираете программу из исходного кода, установите её в APP.AppDir/!
Если мы собираем Firefox, то вместо APP подставьте Firefox. Файлы app.desktop и app.png содержат файлы для интеграции пакета в систему. Также файл app.png может быть использован для генерации превью файлов с этими пакетами (см. предыдущий пост), точнее не сам этот файл, а ссылка на него, которая автоматически создаётся при создании AppImage.
Замените в именах этих файлов app на имя пакета. Для Firefox пусть будет firefox.desktop и firefox.png.

app.png - это иконка приложения. Обычно она содержится в директории APPDIR/share/icons или иной. Поищите её, она должна быть.

Простейший *.desktop файл выглядит так:

[Desktop Entry]
Name=MyApp
Exec=myapp
Icon=myapp
Type=Application
Categories=Utility;

Параметр Name должен совпадать с APP - именем программы (например, Firefox). Параметр Exec нам здесь не особо важен, ибо вместо него для запуска программы будет использован скрипт AppRun. Icon носит имя иконки программы, которую мы поместили в APP.AppDir/ до создания этого *.desktop. Параметр Categories описывает категории, к которым относится наша программа. В меню окружений KDE, MATE, Xfce и других оно попадёт в указанные категории. Зайдите сюда, чтобы посмотреть список допустимых категорий.

Проверьте *.desktop файл на правильность:

`desktop-file-validate app.desktop`

Если вы собираете программу без графического интерфейса (консольную программу), то обязательно добавьте параметр Terminal=true, чтобы после её возможной интеграции в меню системы мы могли запускать программу в терминале.

APPDIR - это каталог, в который установлена программа. Это может быть opt, может быть usr, тут уже без разницы. Например, у меня для программы Firefox этот каталог называется firefox. Название здесь не критично, но его нужно будет учитывать в будущем, когда мы будем создавать скрипт AppRun для запуска нашего приложения. Самое главное, чтобы из этой директории смогла работать программа и, не менее важное, чтобы из этого каталога мы смогли бы запустить эту программу.

AppRun, как вы поняли, это исполняемый BASH скрипт, запускающий программу из AppImage пакета. Тут возникает вопрос - а как нам запустить программу из пакета? Мы можем указать что-то вроде этого:

#!/bin/bash
./APP/app_name
(где APP - директория с установленной программой, а app_name - название двоичного файла или скрипта - собственно, нужной нам программы).

—== ПРОДОЛЖЕНИЕ В ПОСТЕ НИЖЕ ==—

А ты оформил под-письку на LinuxSovet???

#AppImage
6👍1🌚1
—== ПРОДОЛЖЕНИЕ ПОСТА ВЫШЕ ==—

Но так у нас не сработает. Мы можем просто указать app_name, но и так тоже не сработает. Дело в том, что скрипту AppDir передаются некоторые переменные окружения, которые мы можем использовать для запуска нужных программ из пакета. Одной из них является переменная $APPDIR, которую мы и будем использовать для формирования пути до исполняемого файла программы:

#!/bin/bash
$APPDIR/APP/app_name
(где APP - директория с установленной программой, а app_name - название двоичного файла или скрипта - собственно, нужной нам программы).

Не забудьте сделать AppRun исполняемым:

chmod +x AppRun


Создание пакета

Скачайте отсюда пакет appimagetool. У меня скачан пакет с именем appimagetool-x86_64.AppImage, поэтому показываю на нём. Дайте этому пакету право исполнения: chmod +x appimagetool-x86_64.AppImage и запустите его следующим образом:

./appimagetool-x86_64.AppImage APP.AppDir APP-VERSION-ARCH.AppImage

Замените APP на имя программы, VERSION - на её версию, ARCH - на архитектуру, для которой программа собиралась (например, x86_64). Если всё прошло успешно, то у нас будет собран новый AppImage пакет.

А ты оформил под-письку на LinuxSovet???

#AppImage
4
К слову, вот так оно выглядит в Caja. Подобным образом и в Nemo.
Немного про AppImage. Часть 3. Превью в Nautilus.

По умолчанию файловый менеджер Nautilus не умеет показывать превьюхи для AppImage пакетов. Когда таких пакетов используется несколько, проблем нет. Но когда их много, ориентироваться и искать нужный пакет становится сложнее.

Поэтому был написан простой скрипт для создания превью AppImage пакетов в файловых менеджерах типа Nautilus, Nemo, Caja и пр.

Я использую ArchLinux, установка там проста: yay -S appimage-thumbnailer-git. Для остальных дистрибутивов следуйте указаниям из README.md в репозитории проекта (ссылка выше).

Конечно, в Nautilus превью выглядят не очень эстетично, но что есть то есть - это проблема самого Nautilus, который вместо прозрачного фона в изображениях рисует вот такое клеточное нечто. В любом случае, это лучше, чем ничего, правда?

Также у нас есть дичайший тайный чат для участников канала, только тихо, никому об этом не пишите ;-)

#AppImage
👍42
Экран в одном месте, топкейс в другом, всё остальное ещё непонятно где.

Поскольку корпус в ноуте приказал долго жить, решил восстановить его. Чтобы хотя бы экран хоть как-то держался на петлях, а не болтался на соплях, удерживаемый только шлейфом матрицы и WiFi антеной. Поскольку покупка нового железа не предвидется в ближайшие лет 50, это единственный выход
👍6
Идея с восстановлением креплений петель дико провалилась. Петли очень тугие и я не имею никакого представления о том, как их хотя бы ослабить. Тугие петли выламывают с корнем либо топкейс, либо нижний поддон. В моём случае как топкейс, так и НП, да и без того очень хрупкий пластик через 10 лет использования стал ещё более хрупким. Как-то так 😁
😱2
В nightly версию Firefox добавили переводчик — наконец-таки. Работает пока так себе, да и браузер сам предупреждает, что перевод на русский пока ещё BETA. Что ж, это лучше, чем ничего. Да, до уровня переводчика в Яндексе (прости Господи) оно не дотягивает, но +- переведённые страницы понятны

#Firefox #Переводчики
🔥3
Раз уж продолжать тему переводчиков, то сегодня для себя открыл DeepL. Услышал про него ещё где-то год назад, но думал, что переводит он не так хорошо, как Yandex или Google. Сейчас же пришлось перевести одну доку по Rust [вот не учил я в своё время буржуйский язык, теперь мучаюсь с переводчиками] — DeepL вполне себе неплохо угадывает контекст и переводит только то, что нужно переводить, а не всё подряд. Красота!
👍6
If you find any of these libraries useful, please let us know what
you're using and why you aren't in a mental hospital yet.
😁10
В принципе, это справедливо не только к каким-то отдельным либам, но и ко всему Xorg в целом :)
👍8🤡3
Тыкаю тем временем бета версию Gimp, которая уже портирована на GTK3. Тема по умолчанию там используется не системная, а какая-то своя, которую тоже портировали с GTK2. Пока выглядит очень убого и криво, но после смены темы интерфейса на системную (благо GTK3 пока ещё живее всех живых и помирать в ближайшем будущем не собирается) оно начинает выглядеть немного адекватнее. Очень жду, пока GIMP всё-таки перейдёт хотя бы на GTK3 — да да, в то время, когда как от него отказывается сам GNOME и активно переходит на GTK4 и libadwaita
😁3
Forwarded from KirMozor бложик (ага) (Bridge for itOpenSource.ru)
Новая версия GIMP 2.99.16 и релиз кандидант GIMP 3.0 - KirMozor

GIMP 2.99.16 завершил портирование на граф. Библиотеку GTK+3. Хотя некоторые проблемы остались, но они решаются

В новой версии GIMP 2.99.16 появились улучшения в поиске действий, улучшена интеграция пользовательского интерфейса с операциями GEGL, усовершенствовали инструмент Текст, продолжается работа над точностью цветопередачи, а также внесены различные улучшения для файлов Adobe PSD, включая поддержку экспорта CMYK(A) в…

https://itopensource.ru/?p=262
🔥3