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

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

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

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

176
задан 4 June 2014 в 02:57

3 ответа

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

  1. mkdir /tmp/jedit && cd /tmp/jedit - Делает новый diretory в 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
ответ дан 4 June 2014 в 02:57

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 package
cd package
./configure --prefix=$HOME
make
make install

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

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

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

dpkg -x package.deb dir

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

0
ответ дан 4 June 2014 в 02:57

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

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

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

$>junest -f
(junest)$> pacman -S jedit
(junest)> jedit
11
ответ дан 4 June 2014 в 02:57

Другие вопросы по тегам:

Похожие вопросы: