Вопрос Как установить пакет без доступа root?


у меня есть нет доступа root на этой машине.

Я хотел бы знать, есть ли способ, которым я может загружать пакеты Ubuntu и устанавливать их как не root?

Вероятно, в моем ~/bin или ~/usr/share или что-то типа того? Будет ли это работать?


102
2017-07-29 11:17


происхождения


Надеюсь, они скоро поддержат его. - Domi
Вы можете использовать портативные приложения для linux: нет установки, нет необходимости в корне. Найдите его на appimage.org, Даже Линусу Торвальдсу нравится это. Это странно, потому что Линус никогда не любит ничего. - ipse lute
Я предлагаю попробовать fakechroot, - Robert Pollak
Сочетание dpk -x а также mv работал на меня. Или, если даже dpk недоступно, ar и трубопроводы / комбинирование с tar работал на меня в очень ограниченных системах, см. Вот - iolsmit


ответы:


Apt не поддерживает его напрямую, но есть способы сделать это.

Один из них - использовать schroot для создания корневого элемента root. Это несколько вовлеченный процесс, но вы должны найти помощь сообщества, так как многие разработчики настроили chroot-среды для компиляции кода.

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

apt-get download package

замещать package с именем пакета

После того, как у вас есть вызов в файле deb dpkg непосредственно из командной строки. Следующий пример установит package.deb в ваш домашний каталог.

dpkg -i package.deb --force-not-root --root=$HOME 

Недостатком использования dpkg является то, что сообщения об ошибках могут быть загадочными; dpkg автоматически не разрешает зависимости или не создает структуру каталогов, которую он ожидает.

Наконец, вы можете использовать apt-get source команду для извлечения источника пакета и его настройки для локального использования. Обычно это выглядит примерно так:

apt-get source package
cd package
./configure --prefix=$HOME
make
make install

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

РЕДАКТИРОВАТЬ:

В виде dpkg -i не работает (см. комментарии), я предлагаю эту альтернативу:

dpkg -x package.deb dir

Это извлечет пакет .deb в каталог. Затем вы можете экспортировать PATH, где находится двоичный файл. Пока все зависимости двоичного файла установлены, он должен работать как обычно.


93
2017-07-29 11:56



Если у вас есть root-доступ, но просто не хотите устанавливать конкретный пакет по всему миру, вы можете использовать sudo apt-get build-dep package установить все необходимое для строить пакет (после получения его источника с apt-get source). - Vladimir Panteleev
Этот ответ был написан еще в 2010 году. Были ли какие-либо изменения в отношении того, как это делается с тех пор? - becko
Даже с --force-not-root, я получаю «dpkg: error: запрошенная операция требует привилегии суперпользователя» - Clément
Folks, --force-not-root --root=$HOME, или их варианты не будут работать. Двоичные пакеты Debian не предназначены для установки в домашний каталог, период. Или, по-другому. «Следующий пример установит package.deb в ваш домашний каталог». Нет, не будет. - Faheem Mitha
К сожалению, это не сработает. Я пытался --force-not-root --root=/your/custom/path - Viet


Я предполагаю, что вы хотите установить jedit, Сначала вам нужно найти пакет и загрузить его. Я просто беру deb-файл из какого-то зеркала и откройте консоль / терминал:

  1. mkdir /tmp/jedit && cd /tmp/jedit - Создает новый tmp и изменяет его.
  2. wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jedit/jedit_4.3.1.dfsg-0ubuntu1_all.deb - Загрузить пакет
  3. ar x jedit_4.3.1.dfsg-0ubuntu1_all.deb или, легко набирать, ar x *.deb - это извлекает содержимое файла
  4. tar xvzf data.tar.gz -- файл data.tar.gz имеет все необходимое для выполнения программного обеспечения
  5. usr/bin/jedit открывает редактор
  6. сделанный :-)

Вы можете переместить файлы в какой-то момент в своем домашнем каталоге и выполнить их оттуда.


16
2017-07-29 11:32



Обратите внимание, что сценарии до и после установки не запускаются; вам также нужно будет разрешить любые зависимости или пути самостоятельно. Но при установке по умолчанию этого достаточно для множества настольных приложений. - jbowtie
вы также можете скачать пакет без его поиска, просто сделайте apt-get download (см. другой ответ) - lib
Я считаю, что ваша связь сломана. - Winnemucca


Я написал программу под названием JuJu который в основном позволяет иметь действительно крошечный дистрибутив Linux (содержащий только менеджер пакетов) внутри вашего каталога $ HOME / .juju.

Это позволяет настроить вашу пользовательскую систему внутри домашнего каталога через proot и, следовательно, вы можете установить любые пакеты без привилегий root. Он будет корректно работать со всеми основными дистрибутивами Linux, единственным ограничением является то, что JuJu может работать на ядре Linux с минимальной рекомендуемой версией 2.6.32.

Например, после установки JuJu для установки jedit:

$>juju -f
(juju)$> pacman -S jedit
(juju)> jedit

9
2017-11-02 18:17



Это будет нормально работать на Ubuntu? - Seth♦
Да, если версия ядра Linux ubuntu больше или равна 2.6.32, она будет работать. - user967489
Сначала я думал, что ты говоришь это, Вторая заглавная j делает разницу. - kon psych
Вопрос в том, можно ли установить пакет Ubuntu. С junest мы сможем установить пакет ArchLinux и НЕ пакет Ubuntu. Напр. если тот же пакет недоступен для ArchLinux, это не поможет. Тем не менее, спасибо за июнь. - Kiran