yum install in user home для не-админов

Я - пользователь, не являющийся администратором, на большой компьютерной системе. Мне нужны обновленные пакеты, которые не установлены в системе. Я хочу использовать yum для их установки. Как пользователь без доступа к sudo, admin или root, могу ли я использовать управление пакетами для установки пакетов в моем домашнем каталоге? Я всегда могу использовать make из источников, но возможность использовать yum облегчит жизнь.

34 голоса | спросил highBandWidth 14 Jpm1000000pmMon, 14 Jan 2013 21:25:18 +040013 2013, 21:25:18

1 ответ


23

Вместо того, чтобы использовать yum, найдите нужные вам rpms и загрузите их. Вы по-прежнему не можете установить их напрямую, не будучи root, но RPM-пакеты действительно представляют собой файлы .cpio, и вы можете распаковать их содержимое. Самый простой способ сделать это, вероятно, с помощью обозревателя файлов mc ("midnight commander") (одного из самых больших программных приложений) , который позволяет вам просматривать содержимое .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

Viola! Теперь я могу набрать xsnow и ничего не смотреть, поскольку, как выясняется, xsnow не очень хорошо работает с KDE :( но, надеюсь, процесс ясен. Мне не нужно было ничего делать за пределами моего домашнего каталога.

Если вам нужно установить библиотеки, вам также нужно будет создать для них каталог для дома и добавить в ~/.bashrc:

export LD_LIBRARY_PATH=/home/you/lib
ответил goldilocks 15 Jam1000000amTue, 15 Jan 2013 00:33:27 +040013 2013, 00:33:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132