Каковы современные возможности «инкапсуляции» пакетов в Linux?

Каковы современные возможности «инкапсуляции» пакетов в Linux?

Существует ли какой-либо общий, универсальный способ, с помощью которого, если я захочу установить пакет Foo или собрать Foo из исходного кода, я могу сделать все, установить зависимости и т. д., в его собственном каталоге «песочницы», не изменяя ничего в системе?

Я спрашиваю о том, как я, как конечный пользователь пакета, могу использовать его, не изменяя ничего за пределами выбранного мной "каталога установки". А не о том, как создатель пакета может это настроить.

решение1

Большинство достаточно продвинутых систем упаковки могут устанавливать пакет в «альтернативный корень» и отслеживать зависимости пакета, поэтому даже если менеджер пакетов не предлагает возможности установки всего необходимого самостоятельно, вы можете написать скрипт для этого (извлекая зависимости и также устанавливая их).

Однако следует отметить, что вам может потребоваться настроить некоторые переменные окружения (обычно PATHи LD_LIBRARY_PATH), чтобы убедиться, что используются соответствующие двоичные файлы и библиотеки (т. е. те, что из альтернативного корня, а не системные). Некоторые пакеты также ищут некоторые файлы (конфигурацию, данные времени выполнения) в очень специфических и иногда ненастраиваемых местах.

Связанный контент