У меня нет корневого доступа на этом компьютере.
Я хотел бы знать, есть ли способ, которым я могу загрузить пакеты Ubuntu и установить их как не-root?
Вероятно, в моем ~/bin
или ~/usr/share
или что-то еще как это? Будет ли это работать?
Я предполагаю, что Вы хотите установить jedit. Сначала необходимо найти пакет и загрузить его. Я просто беру deb файл от некоторого зеркала и открываю консоль/терминал:
mkdir /tmp/jedit && cd /tmp/jedit
- Делает новый diretory в tmp
и изменения в него.wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jedit/jedit_4.3.1.dfsg-0ubuntu1_all.deb
- Загрузите пакетar x jedit_4.3.1.dfsg-0ubuntu1_all.deb
или, легкий ввести, ar x *.deb
- это извлекает содержание файлаtar xvzf data.tar.gz
- файл data.tar.gz
имеет весь материал, в котором Вы нуждаетесь для выполнения программного обеспеченияusr/bin/jedit
открывает редактораМожно переместить файлы в некоторую точку в корневом каталоге и выполнить их оттуда.
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 пакет для реж. Затем вы можете экспортировать путь, где находится двоичный файл. Пока все зависимости двоичного файла установлены, он должен работать как обычно.
Я написал программу под названием JuNest , которая в основном позволяет иметь действительно крошечный дистрибутив Linux (содержащий только диспетчер пакетов) внутри вашего каталога $ HOME / .junest.
Это позволяет вам иметь вашу собственную систему внутри домашнего каталога, доступную через proot, и, следовательно, вы можете устанавливать любые пакеты без привилегий root. Он будет правильно работать во всех основных дистрибутивах Linux, единственным ограничением является то, что JuNest может работать с ядром Linux с минимальной рекомендуемой версией 2.6.32.
Например, после установки JuNest для установки jedit:
$>junest -f
(junest)$> pacman -S jedit
(junest)> jedit