Вместо использования 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