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" exec "/opt/$1/bin/$1" "$@"

Достоитства

  • ldconfig делать не надо.

Выводы

  1. К каждой программе нужен индивидуальный подход
  2. Наиболее прост и универсален LD_LIBRARY_PATH= Именно этот метод используется везде где возможно в PRA
  3. Подключаемые модули в дистрибутивах puppy(rus)(a), porteus, magos можно делать портируемыми (Что и сделано в большинстве модулей PRA)
  4. Не надо злоупотреблять. Всегда нужно стараться использовать родной репозиторий или компилить
  5. Оптимально портировать простые, популярные программы для использования в разных дистрибутивах

Обсуждение Автор: sfs

Печать/экспорт