У мене немає кореневого доступу на цій машині.
Мені хотілося б знати, чи є спосіб завантажувати пакети Ubuntu та встановлювати їх як некореневі?
Можливо , в моєму ~/bin
або ~/usr/share
або що - то в цьому роді? Це би спрацювало?
У мене немає кореневого доступу на цій машині.
Мені хотілося б знати, чи є спосіб завантажувати пакети Ubuntu та встановлювати їх як некореневі?
Можливо , в моєму ~/bin
або ~/usr/share
або що - то в цьому роді? Це би спрацювало?
Відповіді:
Apt не підтримує це безпосередньо, але є способи це зробити.
Перше - це використовувати schroot
для створення не-кореневого хротону. Це дещо пов'язаний процес , але ви повинні знайти допомогу спільноти для більшості розробників, які налаштовують chroot середовища для компіляції коду.
Другий спосіб, про який я знаю, - це встановити з пакета .deb. Ви можете завантажити це з веб-сайту або якщо він знаходиться у сховищах Ubuntu, які ви можете завантажити.
apt-get download package
Замініть package
назви пакету
Після того, як у вас буде виклик деб-файлу 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, де є двійковий файл. Поки встановлені всі залежності двійкового файлу, він повинен працювати як звичайний.
sudo apt-get build-dep package
для установки всього необхідного для складання пакету (після отримання його джерела apt-get source
).
--force-not-root --root=$HOME
або їх варіанти не працюватимуть. Бінарні пакети Debian не розроблені для встановлення в домашній каталог, період. Або, по-іншому,. "Наступний приклад встановить package.deb у ваш домашній каталог." Ні, не буде.
--force-not-root --root=/your/custom/path
Я припускаю, що ви хочете встановити jedit . Спочатку ви повинні знайти пакунок і завантажити його. Я просто беру деб-файл із якогось дзеркала та відкриваю консоль / термінал:
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