Yum

yum install in user home for non-admins

  • January 27, 2022

我是大型電腦系統的非管理員使用者。我需要一些未安裝在系統上的最新軟體包。我想用 yum 來安裝它們。作為沒有 sudo、admin 或 root 訪問權限的使用者,我可以使用包管理在我的主目錄中安裝包嗎?我總是可以從原始碼中使用 make,但是能夠使用 yum 會讓生活更輕鬆。

大多數二進製文件都經過編譯以安裝到/.

有像Gentoo Prefix和Rootless GoboLinux之類的非 root 軟體包管理器,也許還有0install

正如你所說,編譯自己會緩解這個問題,或者使用 chroot。但是,chrooting 的最大障礙將是先決條件和連結到核心共享對象。

與其使用 ,不如yum找到您想要的 rpm 並下載它們。沒有root使用者仍然不能直接安裝它們,但是RPM包實際上是花哨的.cpio文件,你可以解壓它們的內容。最簡單的方法可能是通過mc(“午夜指揮官”)文件瀏覽器(有史以來最偉大的軟體之一),它允許您瀏覽文件的內容.rpm並直接從中復製文件。

Sans,您可以使用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 配合使用 :( 但希望這個過程的要點很清楚。我不必在我的主目錄之外做任何事情。

如果您需要安裝庫,您還需要在 home 中為它們創建一個目錄並添加到~/.bashrc

export LD_LIBRARY_PATH=/home/you/lib

引用自:https://unix.stackexchange.com/questions/61283