Вместо использования yum
найдите нужные вам rpms и скачайте их. Вы по-прежнему не можете установить их напрямую, не будучи пользователем root, но пакеты RPM на самом деле представляют собой красивые файлы .cpio, и вы можете распаковать их содержимое. Самый простой способ сделать это, вероятно, через mc
(«полночный командир») файловый браузер (один из величайших компонентов программного обеспечения), который позволяет вам просматривать содержимое .rpm
и копировать файлы прямо из него.
Кроме того, вы можете использовать его rpm2cpio
для преобразования в .cpio, а затем cpio
для извлечения файлов внутри и размещения их в нужных местах. Оба из них уже будут установлены в системе Redhat или Fedora. Вот пример установки "xsnow" (вы, вероятно, хотите сделать это в пустой директории):
»rpm2cpio xsnow-1.42-17.fc17.x86_64.rpm > xsnow.cpio
Обратите внимание, что я нашел .rpm, соответствующий моей системе, fc17 x86_64. Это важно, потому что это предварительно скомпилированные двоичные файлы, которые связаны с другими компонентами. Теперь извлеките .cpio:
»cpio -idv < xsnow.cpio
./usr/bin/xsnow
./usr/share/doc/xsnow-1.42
./usr/share/doc/xsnow-1.42/README
./usr/share/man/man6/xsnow.6.gz
212 blocks
Press any key to continue...
Если я просматриваю это дерево каталогов, там есть все, что мне нужно, кроме некоторой мета-информации, которая может помочь мне разрешить зависимости. Это можно найти с помощью rpm -q -p [package] --[query]
:
»rpm -q -p xsnow-1.42-17.fc17.x86_64.rpm --requires
warning: xsnow-1.42-17.fc17.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID d2382b83: NOKEY
libX11.so.6()(64bit)
libXext.so.6()(64bit)
libXpm.so.4()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1
Уверен, у меня уже есть все это. Так что теперь все, что мне нужно сделать, это поместить исполняемый файл xsnow в мой $ PATH, который уже содержит bin в моем домашнем каталоге:
»cp ./usr/bin/xsnow ~/bin
Виола! Теперь я не могу xsnow
ничего печатать и смотреть, поскольку, как оказалось, xsnow не очень хорошо работает с KDE :( но, надеюсь, суть процесса ясна. Мне не нужно было ничего делать вне моего домашнего каталога.
Если вам нужно установить библиотеки, вам также нужно создать домашний каталог для них и добавить в ~/.bashrc
:
export LD_LIBRARY_PATH=/home/you/lib