गैर-व्यवस्थापक के लिए उपयोगकर्ता होम में yum इंस्टॉल करें


51

मैं एक बड़े कंप्यूटर सिस्टम पर एक गैर-व्यवस्थापक उपयोगकर्ता हूं। मुझे कुछ ऐसे पैकेज पैकेजों की आवश्यकता है जो सिस्टम पर स्थापित नहीं हैं। मैं उन्हें स्थापित करने के लिए यम का उपयोग करना चाहता हूं। सुडू, एडमिन या रूट एक्सेस के बिना एक उपयोगकर्ता के रूप में, क्या मैं अपने घर निर्देशिका में पैकेज स्थापित करने के लिए पैकेज प्रबंधन का उपयोग कर सकता हूं? मैं हमेशा स्रोतों से बना उपयोग कर सकता हूं, लेकिन यम का उपयोग करने में सक्षम होने से जीवन आसान हो जाएगा।


1
जब तक यम बाइनरी suid रूट नहीं है (उस की संभावना पतली है)।
hrrmiller

1
@ h3rrmiller, लेकिन क्या कोई पैकेज प्रबंधक है जो $ HOME में प्रोग्राम स्थापित कर सकता है, और इसलिए उसे sudo एक्सेस की आवश्यकता नहीं है? मुझे पता है कि OSX पर MacPorts ऐसा कर सकते हैं। लिनक्स के लिए ऐसे विकल्प क्या हैं?
हाईबंडविड

जवाबों:


8

अधिकांश बायनेरिज़ को कुछ विशेष स्थानों में स्थापित करने के लिए संकलित किया जाता है /

गैर-रूट पैकेज मैनेजर जैसे कि जेंटू प्रीफिक्स और रूटलेस गोबॉइनक्स और शायद 0 इंस्टॉलेशन हैं

जैसा कि आपने कहा था कि खुद को संकलित करना उस मुद्दे को कम करेगा, या चेरोट का उपयोग करना। हालांकि, चेरोटिंग के साथ आपकी सबसे बड़ी बाधा पूर्वापेक्षाएँ होंगी और कर्नेल साझा किए गए ऑब्जेक्ट से लिंक करना होगा।


10
चेरोट यहां कोई विकल्प नहीं है। आपको रूट करने की आवश्यकता है।
मार्को

38

उपयोग करने के बजाय yum, इच्छित rpms ढूंढें और उन्हें डाउनलोड करें। आप अभी भी उन्हें सीधे रूट किए बिना इंस्टॉल नहीं कर सकते हैं, लेकिन RPM पैकेज वास्तव में फैंसी .cpio फाइलें हैं, और आप उनकी सामग्री को अनपैक कर सकते हैं। ऐसा करने का सबसे आसान तरीका संभवत: mc("मिडनाइट कमांडर") फ़ाइल ब्राउज़र (सॉफ्टवेयर का सबसे बड़ा टुकड़ा) में से एक है, जो आपको .rpmसीधे एक और बाहर की फ़ाइलों को कॉपी करने की अनुमति देता है।

Sans कि, आप rpm2cpioइसे .cpio में बदलने के लिए उपयोग कर सकते हैं , फिर cpioफ़ाइलों को अंदर निकालने के लिए और उन्हें सही स्थानों पर रख सकते हैं। ये दोनों पहले से ही एक रेडहैट या फेडोरा सिस्टम पर स्थापित किए जाएंगे। यहां "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

बहुत यकीन है कि मेरे पास पहले से ही यह सब है। तो अब मुझे बस इतना करना है कि मेरे $ PATH में xsnow निष्पादन योग्य है, जिसमें पहले से ही मेरे घर में एक बिन शामिल है:

»cp ./usr/bin/xsnow ~/bin

आहा! अब मैं टाइप कर सकता हूं xsnowऔर कुछ भी नहीं देख सकता हूं , क्योंकि यह पता चला है कि xsnow केडीई के साथ अच्छा नहीं खेलता है :( लेकिन उम्मीद है कि प्रक्रिया का जिस्ट स्पष्ट है। मुझे अपने होम डायरेक्टरी के बाहर कुछ भी नहीं करना था।

यदि आपको पुस्तकालयों को स्थापित करने की आवश्यकता है, तो आपको उनके लिए भी घर में एक निर्देशिका बनाने और जोड़ने की आवश्यकता होगी ~/.bashrc:

export LD_LIBRARY_PATH=/home/you/lib

@siamii अच्छा, क्या आपके पास बेहतर उत्तर है?
मार्सिन

5
ठीक है, तो कैसे किसी ने cpio फ़ाइलों को बनाने के लिए एक उपकरण बनाया है, और फिर सब कुछ एक गैर-रूट फ़ोल्डर में कॉपी करें, जैसे ./usr/bin से $ PREFIX / usr / bin आदि, और पुनरावर्ती जाँच और निर्भरता भी स्थापित करें।
highBandWidth

2
ढाई साल बाद, उपयोगी उत्तर के लिए धन्यवाद। आप इसे एक पंक्ति में कर सकते हैं: mkdir xsnow; सीडी xsnow; wget -O - 195.220.108.108/linux/rpmfusion/nonfree/fedora/releases/17/… | rpm2cpio - | cpio -idv
लैरी एनघोलम

1
मैं अपने कार्यालय के कंप्यूटर पर 2 वर्षों से इसका उपयोग कर रहा हूं और यह हर बार एक आकर्षण की तरह काम करता है। मैं आपके प्रति अपनी गंभीर कृतज्ञता व्यक्त करना चाहता हूं। काश मेरे विश्वविद्यालय का आईटी उतना ही सक्षम हो।

इसे करते समय मैं हर एक बार और कुछ समय के लिए '...' पर नहीं चल सकता: अनुमति अस्वीकृत या cpio: ....: नहीं खोल सकता: अनुमति से इनकार किया गया, क्या इसे ठीक करने का कोई तरीका है? ध्यान दें कि मैं इन फ़ाइलों को sudo के बिना बनाता हूं, लेकिन फिर किसी कारण से मुझे इन्हें अनइंस्टॉल करने के लिए sudo का उपयोग करने की आवश्यकता है
Phylliida
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.