Вы можете установить отдельные файлы .deb в свой домашний каталог с помощью:
dpkg-deb -x /path/to/some.deb $HOME
Но это не заботится о таких зависимостях, как aptitude или apt-get.
Существует ли простой способ установки пакетов с большим деревом зависимостей при условии, что у вас нет прав суперпользователя? Например, скажем, я хотел установить Firefox. Firefox имеет массу зависимостей, каждая из которых имеет свои собственные зависимости и т. Д. Установка этих способов "./configure; make; make install" заняла бы вечность.
Могу ли я дать apt-get возможность установить его в личном каталоге? Или есть способ взломать его, чтобы сделать всю тяжелую работу для меня?
Вы можете установить отдельные файлы .deb в свой домашний каталог с помощью:
dpkg-deb -x /path/to/some.deb $HOME
Но это не заботится о таких зависимостях, как aptitude или apt-get.
Проверьте NixOs ( LWN ). Пакеты изолированы (иногда дистрибутив должен их исправлять) и могут быть установлены несколько раз, в разных версиях или разными пользователями.
jhbuild может автоматизировать большой процесс CMMI. Но кто-то должен написать набор модулей (граф зависимостей).
Если вы собираетесь выполнить процесс ручной настройки / выполнения всех установок, можно использовать stow для упрощения установки вещей в вашем доме. Stow полезен для установки нескольких префиксов, но для разрешения зависимостей используется только один префикс.
dpkg можно принудительно установить в другом префиксе с помощью instdir / admindir / root, но это полезно только для сред chroot.
Не компилируйте Firefox из исходного кода, просто установите бинарный пакет в свой домашний каталог.
В этой статье базы знаний Mozilla объясняется, как это сделать. В основном вам нужно просто распаковать архив и выполнить в нем firefox
файл; все зависимости уже включены, поэтому вам не нужно ничего устанавливать apt
.
РЕДАКТИРОВАТЬ: Нет, универсального метода не существует, по крайней мере, потому что большинство приложений (и особенно GUI) требуют, чтобы большая часть связанных с ними данных была размещена в хорошо известных местах, таких как / usr / share, и они жестко закодированы в ней (хорошо, это может быть настроено во время компиляции, но вы не хотите перекомпилировать все, как вы сказали в вопросе). Так что вы можете просто проверить предварительно скомпилированные бинарные пакеты, которые ищут ресурсы в каталоге запуска, а не системные.
Я думаю, что ответ в значительной степени "нет". Во-первых, база данных пакетов доступна только пользователю root, а во-вторых, некоторые / многие пакеты имеют жестко закодированные пути, которые делают невозможным их перемещение. Использование chroot было бы возможным ответом, но для этого вам также нужен root или, по крайней мере, кто-то с root, чтобы предоставить вам ограниченные права.
Я считаю, что вы должны сделать chroot, тогда вы можете установить свои пакеты там.
ссылка: https://help.ubuntu.com/6.10/ubuntu/packagingguide/C/appendix-chroot.html https://wiki.ubuntu.com/DebootstrapChroot