yum install in user home for non-admins
我是大型電腦系統的非管理員使用者。我需要一些未安裝在系統上的最新軟體包。我想用 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