Я не являюсь администратором в большой компьютерной системе. Мне нужны некоторые современные пакеты, которые не установлены в системе. Я хочу использовать yum для их установки. Как пользователь без прав sudo, admin или root, могу ли я использовать управление пакетами для установки пакетов в моем домашнем каталоге? Я всегда могу использовать make из источников, но возможность использовать yum сделает жизнь проще.
51
Ответы:
Большинство двоичных файлов скомпилированы для установки в определенных местах в
/
.Существуют менеджеры пакетов без полномочий root, такие как Gentoo Prefix и Rootless GoboLinux и, возможно, 0install .
Как вы сказали, компиляция самостоятельно облегчила бы эту проблему или использовала chroot. Тем не менее, вашим самым большим препятствием при использовании chroot будут предварительные условия и ссылки на общие объекты ядра.
источник
Вместо использования
yum
найдите нужные вам rpms и скачайте их. Вы по-прежнему не можете установить их напрямую, не будучи пользователем root, но пакеты RPM на самом деле представляют собой красивые файлы .cpio, и вы можете распаковать их содержимое. Самый простой способ сделать это, вероятно, черезmc
(«полночный командир») файловый браузер (один из величайших компонентов программного обеспечения), который позволяет вам просматривать содержимое.rpm
и копировать файлы прямо из него.Кроме того, вы можете использовать его
rpm2cpio
для преобразования в .cpio, а затемcpio
для извлечения файлов внутри и размещения их в нужных местах. Оба из них уже будут установлены в системе Redhat или Fedora. Вот пример установки "xsnow" (вы, вероятно, хотите сделать это в пустой директории):Обратите внимание, что я нашел .rpm, соответствующий моей системе, fc17 x86_64. Это важно, потому что это предварительно скомпилированные двоичные файлы, которые связаны с другими компонентами. Теперь извлеките .cpio:
Если я просматриваю это дерево каталогов, там есть все, что мне нужно, кроме некоторой мета-информации, которая может помочь мне разрешить зависимости. Это можно найти с помощью
rpm -q -p [package] --[query]
:Уверен, у меня уже есть все это. Так что теперь все, что мне нужно сделать, это поместить исполняемый файл xsnow в мой $ PATH, который уже содержит bin в моем домашнем каталоге:
Виола! Теперь я не могу
xsnow
ничего печатать и смотреть, поскольку, как оказалось, xsnow не очень хорошо работает с KDE :( но, надеюсь, суть процесса ясна. Мне не нужно было ничего делать вне моего домашнего каталога.Если вам нужно установить библиотеки, вам также нужно создать домашний каталог для них и добавить в
~/.bashrc
:источник