установка пакетов без доступа sudo


11

Существует ли простой способ установки пакетов с большим деревом зависимостей при условии, что у вас нет прав суперпользователя? Например, скажем, я хотел установить Firefox. Firefox имеет массу зависимостей, каждая из которых имеет свои собственные зависимости и т. Д. Установка этих способов "./configure; make; make install" заняла бы вечность.

Могу ли я дать apt-get возможность установить его в личном каталоге? Или есть способ взломать его, чтобы сделать всю тяжелую работу для меня?


попробуйте задать вопрос на сайте www.superuser.com или, если у вас есть конкретный вопрос на сервере www.serverfault.com

Ответы:


4

Вы можете установить отдельные файлы .deb в свой домашний каталог с помощью:

dpkg-deb -x /path/to/some.deb $HOME

Но это не заботится о таких зависимостях, как aptitude или apt-get.


Я использовал этот метод для установки атома для Джулии на моей рабочей станции. Кроме того, я сделал псевдоним для атома в ~ / .bashrc: псевдоним atom = "/ путь / к / исполняемому файлу / atom / binary / file". Затем запустите: source ~ / .bashrc, вы готовы запустить атом в терминале.
Доброй воли,

2

Проверьте NixOs ( LWN ). Пакеты изолированы (иногда дистрибутив должен их исправлять) и могут быть установлены несколько раз, в разных версиях или разными пользователями.

jhbuild может автоматизировать большой процесс CMMI. Но кто-то должен написать модуль (граф зависимостей).

Если вы собираетесь выполнить процесс ручной настройки / установки всех параметров, можно использовать stow для упрощения установки вещей в вашем доме. Stow полезен для установки нескольких префиксов, но для разрешения зависимостей используется только один префикс.

dpkg можно принудительно установить в другом префиксе с помощью instdir / admindir / root, но это полезно только для сред chroot.


0

Не компилируйте Firefox из исходного кода, просто установите бинарный пакет в свой домашний каталог.

В этой статье базы знаний Mozilla объясняется, как это сделать. В основном вам нужно просто распаковать архив и запустить в нем firefoxфайл; все зависимости уже включены, поэтому вам не нужно ничего устанавливать apt.

РЕДАКТИРОВАТЬ: Нет, универсального метода не существует, по крайней мере, потому что большинство приложений (и особенно GUI) требуют, чтобы большая часть связанных с ними данных была размещена в хорошо известных местах, таких как / usr / share, и они жестко закодированы в ней (хорошо, это может быть настроено во время компиляции, но вы не хотите перекомпилировать все, как вы сказали в вопросе). Таким образом, вы можете просто проверить предварительно скомпилированные бинарные пакеты, которые ищут ресурсы в каталоге запуска, а не системные.


я интерпретирую вопрос о методах управления пакетами. я подозреваю, что Firefox - только пример, поэтому специфичные для Firefox методы не слишком полезны.
Квик-кихот

Спасибо, отредактировал пост. Информация Firefox все еще полезна через.
whitequark

0

Я думаю, что ответ в значительной степени "нет". Во-первых, база данных пакетов доступна только пользователю root, а во-вторых, некоторые / многие пакеты имеют жестко закодированные пути, которые делают невозможным их перемещение. Использование chroot было бы возможным ответом, но для этого вам также нужен root или, по крайней мере, кто-то с root, чтобы предоставить вам ограниченные права.


0

Я считаю, что вы должны сделать chroot, тогда вы можете установить свои пакеты там.

ссылка: https://help.ubuntu.com/6.10/ubuntu/packagingguide/C/appendix-chroot.html https://wiki.ubuntu.com/DebootstrapChroot


корневые привилегии в любом случае необходимо создать корневой, так почему бы не только установки пакетов вместо ? Помимо этого, вероятность того, что ваш системный администратор предоставит вам полные права суперпользователя (или даже связанные с apt), намного, намного меньше, чем у chroot. Это (почти) не опасно для хост-системы.
whitequark
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.