Portable софт (перенос софта из одного дистрибутива в другой)
Софт, который не имеет зависимостей от сторонних библиотек или включает их в себя.
Соответственно запускается на любом линуксе
Зачем
В Вашем дистрибутиве нет нужного софта (не той версии, не с теми зависимостями или патчами)
Использование портированного софта в разных дистрибутивах. Как минимум - экономия места. Так сделаны основные браузеры
Статическая линковка библиотек
Достоинства
Недостатки
Включение библиотек в альтернативный каталог программы
-
Складываем бинарный файл и библиотеки в, например, /opt и настраиваем связи
Если положить библиотеки в /lib - они могут заменить родные библиотеки системы и сломать систему
Включать абсолютно все зависимые библиотеки не надо. Только те, которых нет (других версий) у акцептора
Если каких-то библиотек не хватает -их можно взять в дистрибутиве-доноре (откуда брались бинарники)
http://portablelinuxapps.org/
Недостатки
Все в 1 файле , который не так просто собрать \ разобрать.
Монтируется iso - в итоге то же монтирование, только iso, а не squash… Сквош удобнее (сжат, можно наслаивать)
/etc/ld.so.conf.d
Достоитства
Недостатки
chroot2pfs
Собираем копию системы и запускаем в ней нужную программу с подключением к текущей сессии Xorg
chroot2pfs --nomod -X -c nspawn --mlist /pth/1.pfs,#2.pfs --command pcmanfm
LD_LIBRARY_PATH=
Запуск через wrapper : wrapper app
#!/bin/sh
LD_LIBRARY_PATH="/opt/$1/lib:/opt/$1/lib1" GSETTINGS_SCHEMA_DIR="/opt/$1/usr/share/glib-2.0/schemas/" exec "/opt/$1/bin/$1" "$@"
Достоитства
Недостатки
Выводы
К каждой программе нужен индивидуальный подход
Наиболее прост и универсален LD_LIBRARY_PATH= Именно этот метод используется везде где возможно в PRA
Подключаемые модули в дистрибутивах puppy(rus)(a), porteus, magos можно делать портируемыми (Что и сделано в большинстве модулей PRA)
Не надо злоупотреблять. Всегда нужно стараться использовать родной репозиторий или компилить
Оптимально портировать простые, популярные программы для использования в разных дистрибутивах
Обсуждение
Автор: sfs