Как я могу установить пакет без root-доступа?

У меня есть нет корневого доступа на этой машине.

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

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

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

Один из них заключается в использовании schroot чтобы создать некорневой chroot. Это несколько вовлеченный процесс, но вы должны быть в состоянии найти помощь сообщества, так как многие разработчики настраивают среды 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 packagecd package./configure --prefix=$HOMEmakemake install

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

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

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

dpkg -x package.deb dir

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

Я предполагаю, что вы хотите установить джедай. Сначала вы должны найти пакет и загрузить его. Я просто беру файл 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. сделано :-)

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

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

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

Например, после установки JuNest, чтобы установить jedit:

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

Вы могли бы использовать портативные приложения для Linux: без установки, без необходимости root. Найдите его по адресу http://appimage.org /. Даже Линусу Торвальдсу это нравится. Это странно, потому что Лайнусу никогда ничего не нравится.

Надеюсь, они скоро его поддержат.

Комбинация “dpk -x” и “mv” сработала для меня. Или, если даже “dpk” недоступен, “ar” и соединение / объединение с “tar” работали для меня в очень ограниченных системах, см. здесь

Я предлагаю попробовать fakechroot.

Related on [unix.se]: Non-Root Package Managers