У меня нет root-доступа на этой машине.
Я хотел бы знать, есть ли способ загрузить пакеты Ubuntu и установить их без полномочий root?
Возможно , в моем ~/bin
или ~/usr/share
или что - то в этом роде? Будет ли это работать?
У меня нет root-доступа на этой машине.
Я хотел бы знать, есть ли способ загрузить пакеты Ubuntu и установить их без полномочий root?
Возможно , в моем ~/bin
или ~/usr/share
или что - то в этом роде? Будет ли это работать?
Ответы:
Apt не поддерживает это напрямую, но есть способы сделать это.
Одним из них является использование schroot
для создания не-root 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 в каталог. Затем вы можете экспортировать путь, где находится двоичный файл. Пока все зависимости двоичного файла установлены, он должен работать как обычно.
sudo apt-get build-dep package
для установки все необходимое для сборки пакета (после получения его исходного кода apt-get source
).
--force-not-root --root=$HOME
или их варианты не будут работать. Двоичные пакеты Debian не предназначены для установки в домашний каталог, точка. Или, говоря по-другому. Msgstr "Следующий пример установит package.deb в ваш домашний каталог." Нет не будет
--force-not-root --root=/your/custom/path
Я полагаю, вы хотите установить Jedit . Сначала вы должны найти пакет и скачать его. Я просто беру файл deb из какого-то зеркала и открываю консоль / терминал:
mkdir /tmp/jedit && cd /tmp/jedit
- Создает новую директорию 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
открывает редакторВы можете переместить файлы в какую-то точку вашего домашнего каталога и выполнить их оттуда.
Я написал программу под названием JuJu, которая в основном позволяет иметь очень маленький дистрибутив linux (содержащий только менеджер пакетов) внутри вашего каталога $ HOME / .juju.
Это позволяет иметь собственную систему внутри домашнего каталога, доступную через proot, и, следовательно, вы можете устанавливать любые пакеты без прав root. Он будет работать корректно во всех основных дистрибутивах Linux, единственное ограничение - JuJu может работать на ядре Linux с минимальной рекомендуемой версией 2.6.32.
Например, после установки JuJu для установки jedit:
$>juju -f
(juju)$> pacman -S jedit
(juju)> jedit