Общие вопросы > Полезные советы, инструкции
Создание портативных приложений своими руками.
totiks2012:
Так как в последнее время использую дистрибутив Minois пример буду приводить используя apt2sb, но создание портативного приложения будет работать на всех дистрибутвах где предусмотрено создание модулей с помощью утилит apt2sfs, в Minois как уже упомянул apt2sb. Способ получил обратным инжинирингом ( :D) портативных приложений полученых с сайта https://www.protopage.com/pp4mnkt3am#Public_Category/%40mikewalsh_PORTABLES . Очень уж загорелся понять как они всё это делают.
Итак получаю модуль скажем audacity, ввожу в терминал команду
--- Код ---
sudo apt2sb audacity
--- Конец кода ---
на выходе в корневом каталоге получаю модуль audacity.sb
Далее создаем в ~/ каталог portapps а в нем каталог audacity,и перемещаем audacity.sb в него ,он станет донором для моей портативной программы с audacity, для этого его нужно распаковать командой
--- Код ---
unsquashfs ./audacity.sb
--- Конец кода ---
после распаковки в каталоге ~/portapps/audacity появится каталог squashfs-root, заходим в него и переносим нужные компоненты в ~/portapps/audacity обычно зачастую это каталог /usr, но на всякий случай, анализируем и другие каталоги на предмет присутствия библиотек либо конфиг файлов если есть таковые, то обязательно копируем и их.
А теперь мы должны создать файл запуска LAUNC, это обычный bash скрипт в котором заданы параметры запуска привожу пример для LAUNC файла для Audacity
--- Код ---
#!/bin/sh
HERE="$(dirname "$(readlink -f "$0")")"
module=$HERE/usr/lib/audacity/modules/ mime=$HERE/usr/lib/mime/ audacity=$HERE/usr/lib/audacity/ LD_LIBRARY_PATH=$HERE/usr/lib/x86_64-linux-gnu $HERE/usr/bin/audacity
--- Конец кода ---
опций приведенных в скрипте достаточно для запуска программы Audacity
как видим все предельно просто строка HERE="$(dirname "$(readlink -f "$0")")" считывает полный путь из которого был запущен файл запуска и присваевает его переменой HERE, далее во второй строке задаются пути библиотек до бинарника программы Audacity, то есть мы должны создать связь между всеми нужными компонентами и бинарником, тут все просто в переменные пишем пути до компонентов а последним должен идти путь до бинарного файла. Теперь скрипту нужно присвоить права на исполнение и запустить его хоть из терминала хоть из desktop файла.
Теперь отвечу на вопрос зачем, это все для дистрибутивов использующих overlay , чтоб избавится с неприятностями со слоями чтоб не городить огороды с горячим подключением, , я много в этом способе еще не понял например еще не щупал как ведет себя desktop файл, как нужно прописывать в него опции ,чтоб это заработало, но мне способ понравился, и потому рассказал о нём.
вот ссылка на архив с портативной audacity, https://disk.yandex.ru/d/AJ7Qh-_wN0FaBA , чтоб поглядеть как это устроено.
knn:
- мне пришлось подойти поближе к Теме когда собирал модуль для 'MyTetra'.
В portable версии 'MyTetra' скрипт запуска (mytetra.run) может выглядеть так:
--- [ Читать далее ] ---
--- Код ---
#!/bin/sh
PROGDIR=$(dirname $(readlink -e $0))
LD_LIBRARY_PATH=$PROGDIR/lib:${LD_LIBRARY_PATH}
export QT_QPA_PLATFORM_PLUGIN_PATH=$PROGDIR/platforms
export LD_LIBRARY_PATH
$PROGDIR/mytetra "${@}"
--- Конец кода ---
--- Конец цитаты ---
-----------------
+ sfs портирует модули
------------
как понимаю, ~= "степени самодостаточности библиотек" обуславливают "степени отвязанности" от конкретной сборки
( :) как-то заумно высказался, но как чтоб меньше букв набирать - не знаю... )
===========
зы
вариант порт-сборок -
--- Цитата: knn от 07 Апрель 2017, 16:02:19 ---mytetra download (сборки от энтузиастов) .
( здесь на данное время я пользую ( на различных puppy-сборках ) mytetra_1.44.34_old_linux_32bit.tar.gz и mytetra_1.44.165_linux_amd64.tar.gz. [ >> подробнее ] )
--- Конец цитаты ---
totiks2012:
если бы всё было так просто, попытался взять плеер sayonara , там дичь с qt и не захотел запускаться ибо битые ссылки , далее попробовал взять vlc этот запустился но проблемы со значками, всё таки нужно более глубоко понять как это работает.
upd: Я невероятно наивный человек, действительно многое упирается с какими зависимостями были собраны программы, если с qt то это атас, мне в обед удалось собрать два портативных пакета , так у них в зависмостях все в порядке было, при запуске кнопки нормально отбражались, программа сделана с тулкитом gtk, я audacity пробовал... в общем чего-то с пылу с жару мне показалось что счастье вот оно близко... а тут случился маленький облом.
В итоге можно заморочится взять модуль с qt и вытащить библиотеки из него , но чего-то я резко охладел к о всему этому.
krasnyh:
Архив audacity.tar.gz не смог запустить, что-то там недокручено в LAUNCH. А вот качнул VLC-portable64.tar.gz с вышеупомянутого сайта, там уже все ок, запустился.
totiks2012:
--- Цитата: krasnyh от 02 Октябрь 2023, 22:10:57 ---Архив audacity.tar.gz не смог запустить, что-то там недокручено в LAUNCH. А вот качнул VLC-portable64.tar.gz с вышеупомянутого сайта, там уже все ок, запустился.
--- Конец цитаты ---
всё правильно архив с audacity.tar.gz сделан мной, и не удивительно что он у вас не запустился, а сайтик с портативками действительно хороший. ...буду потихоньку копать причины
Навигация
Перейти к полной версии