Общие вопросы > Полезные советы, инструкции

Создание портативных приложений своими руками.

(1/7) > >>

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 сделан мной, и не удивительно что он у вас не запустился, а сайтик с портативками действительно хороший. ...буду потихоньку копать причины

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии