Содержание
Portable софт (перенос софта из одного дистрибутива в другой)
- Софт, который не имеет зависимостей от сторонних библиотек или включает их в себя.
- Соответственно запускается на любом линуксе
Зачем
- В Вашем дистрибутиве нет нужного софта (не той версии, не с теми зависимостями или патчами)
- Использование портированного софта в разных дистрибутивах. Как минимум - экономия места. Так сделаны основные браузеры
Статическая линковка библиотек
Некоторые программы можно компилить статически. Например.
Достоинства
- Библиотеки не нужны
Недостатки
- Так получится не с любой программой
- Раздувание объема программы
- Дубляж библиотек
Включение библиотек в альтернативный каталог программы
- Складываем бинарный файл и библиотеки в, например, /opt и настраиваем связи
- Если положить библиотеки в /lib - они могут заменить родные библиотеки системы и сломать систему
- Включать абсолютно все зависимые библиотеки не надо. Только те, которых нет (других версий) у акцептора
- Если каких-то библиотек не хватает -их можно взять в дистрибутиве-доноре (откуда брались бинарники)
http://portablelinuxapps.org/
Недостатки
- Все в 1 файле , который не так просто собрать \ разобрать.
- Монтируется iso - в итоге то же монтирование, только iso, а не squash… Сквош удобнее (сжат, можно наслаивать)
/etc/ld.so.conf.d
Достоитства
- Можно переносить библиотеку с зависимыми библиотеками.
Недостатки
- После изменения конфига надо делать sudo ldconfig
LD_LIBRARY_PATH=
Запуск через wrapper : wrapper app
#!/bin/sh LD_LIBRARY_PATH="/opt/$1/lib:/opt/$1/lib1" exec "/opt/$1/bin/$1" "$@"
Если одна и та же либа есть и в /opt/$1/lib и в /opt/$1/lib1 - будет использована первая по списку (/opt/$1/lib)
Достоитства
- ldconfig делать не надо.
- Не действует для других программ
Выводы
- К каждой программе нужен индивидуальный подход
- Наиболее прост и универсален LD_LIBRARY_PATH= Именно этот метод используется везде где возможно в PRA
- Подключаемые модули в дистрибутивах puppy(rus)(a), porteus, magos можно делать портируемыми (Что и сделано в большинстве модулей PRA)
- Не надо злоупотреблять. Всегда нужно стараться использовать родной репозиторий или компилить
- Оптимально портировать простые, популярные программы для использования в разных дистрибутивах
Обсуждение Автор: sfs