क्या रूट एक्सेस के बिना आरपीएम का उपयोग करना संभव है?
क्या रूट एक्सेस के बिना आरपीएम का उपयोग करना संभव है?
जवाबों:
पैकेज की सामग्री के आधार पर आप बस आरपीएम की सामग्री को निकाल सकते हैं और इसे अपने घर की निर्देशिका के साथ कहीं से भी उपयोग कर सकते हैं। भले ही इसे रीकॉन्सेबल के रूप में चिह्नित नहीं किया गया हो। यदि पैकेज में बायनेरिज़ में हार्ड-कोडेड पथ हैं, या यदि एप्लिकेशन को रूट एक्सेस की आवश्यकता है, तो यह संभव नहीं हो सकता है।
बहुत सारे उत्तर हैं जो relocatable पैकेज का सुझाव देते हैं। स्थानांतरण विकल्प प्रशासकों के लिए है कि वे गंतव्य का चयन करें (उदाहरण के लिए / usr / स्थानीय के बजाय गंतव्य बनाना / चुनना) और वास्तव में उपयोगकर्ता की अनुमति के लिए नहीं है।
हालांकि इस पद्धति का उपयोग करके कुछ अनुमतियों के मुद्दों को प्राप्त करना संभव हो सकता है, MAJOR समस्या यह है कि जब आप आरपीएम संचालन करते हैं, तो यह /var/lib/rpm/__db.* डेटाबेस को संशोधित करता है जो स्वामित्व वाली रूट: रूट हैं। तो जैसा कि JPerkSter ने कहा "संक्षिप्त उत्तर = नहीं"। विशिष्ट आवश्यकताओं की अनुमति देने के लिए सुडो की स्थापना करना शायद सबसे अच्छा शर्त होगा।
उपरोक्त सभी को ध्यान में रखते हुए, relocatable बिल्ड के बारे में, आप यहाँ सूचीबद्ध निर्देशों का पालन कर सकते हैं ।
rpm --initdb --root /home/username/local --dbpath /home/username/local/lib/rpm
rpm --root /home/username/local --dbpath /home/username/local/lib/rpm \
--relocate /usr=/home/username/local --nodeps -ivh package.rpm
RPM युक्ति में 'रिलोसेबल' नामक एक विकल्प होता है। यदि आरपीएम को रिलोकाबिलिटी के साथ बनाया गया है, तो इसे '--prefix' विकल्प का उपयोग करके एक उपयोगकर्ता निर्दिष्ट निर्देशिका में स्थापित किया जा सकता है। तो संभवतः एक rpm स्थानीय रूप से सुपरयूज़र एक्सेस के बिना स्थापित किया जा सकता है जब तक कि दो शर्तें पूरी होती हैं:
लेकिन, सामान्य तौर पर, नहीं, आपको RPM इंस्टॉल करने के लिए सुपरयुसर एक्सेस की आवश्यकता होती है। जबकि रिलोकेबल विकल्प मौजूद है, मैंने लगभग कभी ऐसा पैकेज नहीं देखा है जो इसे सपोर्ट करने के लिए बनाया गया हो।
कुछ पैकेज रिलोकेबल होते हैं इसलिए वे रूट के बिना ठीक काम कर सकते हैं, बस इसे स्थापित करते समय उपसर्ग निर्दिष्ट करें: rpm -i my.rpm --prefix = / my / home / folder
यदि पैकेज स्थानांतरित करने योग्य नहीं है, तो आप अभी भी RPM से फाइलें निकाल सकते हैं और उसे चलाने का प्रयास कर सकते हैं। आप उदाहरण के लिए RPM फ़ाइलों को निकाल सकते हैं:
फ़ाइलों को अपने ~ / फ़ोल्डर में कॉपी करें, किसी भी अतिरिक्त निर्भरता पुस्तकालयों को जोड़ें और सर्वश्रेष्ठ के लिए आशा करें। गारंटी नहीं है लेकिन आपको इस तरह से काम करने वाले कुछ गैर-स्थानांतरित पैकेज मिल सकते हैं।
आप इसे एक अलग dbpath का उपयोग करके एक अलग निर्देशिका के तहत स्थापित करने के लिए मजबूर कर सकते हैं। इसके अलावा, आपको शायद किसी भी स्क्रिप्ट को बिना उनकी जांच किए सीधे नहीं चलाना चाहिए।
यह वर्तमान निर्देशिका के तहत एक आरपीएम डालेगा और स्क्रिप्ट को निकालेगा ताकि आप आवश्यक होने पर उन्हें संपादित और चला सकें।
rpm --install --badreloc --relocate /=`pwd` -dbpath `pwd`/rpm_db --nodeps --noscripts package.rpm
rpm --query --scripts -p package.rpm > scripts.txt
हाँ, लेकिन आप नहीं करना चाहते हो सकता है। मैंने कस्टम कठपुतली मैनिफ़ेस्ट्स और आरपीएम पैकेजों का इस्तेमाल किया है, जो कंप्यूटर्स क्लस्टर्स पर सॉफ्टवेयर बनाए रखने के लिए हैं, जिन पर मेरा रूट एक्सेस नहीं था। सिद्धांत रूप में यह उतना ही सरल है
rpm --inittb --root /foo
rpm --dbpath /foo -i bar.rpm
हालाँकि, इस बात पर सवाल उठ रहे हैं कि यह EL4, EL5 और EL6 में कैसे व्यवहार करता है, इसलिए आपको हर एक के लिए अलग-अलग चरणों और विकल्पों की आवश्यकता होगी। मेरे पास वह जानकारी अब उपलब्ध नहीं है। उन quirks, साथ ही अक्सर RPM डेटाबेस मुद्दों (शायद NFS के कारण), ने मुझे rpm का उपयोग करके पछतावा किया।
rpm
sudo / root एक्सेस के बिना कमांड नहीं चला सकते।