แทนที่จะใช้yum
หา rpms ที่คุณต้องการและดาวน์โหลด คุณยังไม่สามารถติดตั้งได้โดยตรงโดยไม่ต้องรูท แต่แพ็กเกจ 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 ของฉันซึ่งมีถังขยะอยู่ในโฮมไดเร็กตอรี่ของฉัน:
»cp ./usr/bin/xsnow ~/bin
Viola! ตอนนี้ฉันสามารถพิมพ์xsnow
และดูอะไรได้เนื่องจากเมื่อมันปรากฏว่า xsnow เล่นได้ไม่ดีกับ KDE :( แต่หวังว่า jist ของกระบวนการจะชัดเจนฉันไม่ต้องทำอะไรนอกไดเรกทอรีบ้านของฉัน
หากคุณต้องการติดตั้งไลบรารี่คุณจะต้องสร้างไดเร็กตอรี่ที่บ้านสำหรับพวกมันด้วยและเพิ่มไปที่~/.bashrc
:
export LD_LIBRARY_PATH=/home/you/lib