बिना रूट के मैं RPM कैसे स्थापित कर सकता हूं?


49

मैं ऐसी मशीन पर RPM कैसे स्थापित कर सकता हूं, जहां मेरे पास रूट अनुमति नहीं है? मैं केवल एक व्यक्तिगत कार्य निर्देशिका में अपने उपयोग के लिए एक पैकेज स्थापित करना चाहता हूं। मैं SuSe SLES10 चला रहा हूं।

कृपया मेरे साथ लौ न करें "यह विचार बहुत गूंगा है, आपको ऐसा नहीं करना चाहिए क्योंकि सभी अनुरोधों को कॉर्पोरेट रूट भगवान के माध्यम से जाना चाहिए, क्या वह हमेशा के लिए छोड़ सकता है।"

मुझे पता है कि मैं रूट भगवान से यह अनुरोध कर सकता हूं, लेकिन मुझे गोली मार दी जाएगी (बेदाग, त्रुटिहीन कारणों से, मुझे यकीन है ...)। इसके अलावा, वह इसे स्थापित करने के लिए कभी नहीं मिलेगा, भले ही वह कहता है कि वह इसे करेगा।


6
यह बिल्कुल भी डुप्लिकेट नहीं है। पथ को ओवरराइड करने से हमेशा गैर-निजीकृत उपयोगकर्ता को आरपीएम का उपयोग करने की अनुमति नहीं मिलती है।
जॉन टी

धन्यवाद हैरीएमसी। मैं इसकी जांच करूंगा। इसके अलावा, दूसरे टिकट के लिंक को जोड़ने से लोगों को लगा कि मेरा एक डुप्लिकेट था। शायद ब्रेडक्रंब किसी और की मदद करेंगे: superuser.com/questions/160530/override-rpm-install-path
रॉस रोजर्स

बेहतर भविष्य के लिए, appimage.org देखें
रॉस रोजर्स

जवाबों:


56

2
मैंने यह किया और cpio प्रिंट '1 ब्लॉक' को छोड़कर कुछ भी नहीं करता है। क्या मैंने कुछ गलत किया?
नैट पार्सन्स

धन्यवाद। पता चला कि मैं स्रोत से स्थापित करने में सक्षम था, इसलिए मुझे RPMs से परेशान होने की आवश्यकता नहीं है
Nate Parsons

10
यह सिर्फ RPM की सामग्री को अनपैक करता है और आपको जहां है वहीं डंप करता है। इसका मतलब यह नहीं है कि परिणाम काम करता है (इसका कॉन्फ़िगरेशन ऐसा नहीं है जहां यह होना चाहिए, ...)
वॉनब्रांड

काश मैं तुम्हें सिर्फ दान का कुछ प्रतिष्ठा इनाम दे पाता। धन्यवाद!
मटकवे

3

Rpm संकुल सामग्री कैसे निकाले

export ins=foo-bar.rpm
rpm2cpio $ins | cpio -idv

tar.gzआर्काइव कैसे निकाले

gzip -dc foo-bar.tar.gz | tar xvf –
cd foo-bar-dir

tar.gzवर्तमान निर्देशिका में पैकेज कैसे निकालें

export file=foo-bar.tar.gz
# Note that `xovf` switch order *matters*
gzip -dc $file | tar -xovf -

एक गैर-रूट के रूप में बायनेरिज़ का निर्माण कैसे करें

./configure --prefix=$HOME && make && make install

1

एक अन्य विकल्प स्रोत से स्थापित करना है, जहां आप आमतौर पर --prefixस्विच का उपयोग करके इंस्टॉल निर्देशिका को बदल सकते हैं।


1
यही मैं आमतौर पर करता हूं, लेकिन मैं कुछ और स्वचालन के लिए उम्मीद कर रहा था।
रॉस रोजर्स

2
मेरे लिए यह काम नहीं करता है क्योंकि यह कुछ फ़ाइल को / var में लॉक करने की कोशिश करता है (और अनुमति अस्वीकृत है)।
निर फ्रीडमैन

0

मुझे लगता है कि मूल विशेषाधिकार के बिना एक आरपीएम "स्थापित" करने के लिए "असली" उत्तर है, आप नहीं कर सकते । लेकिन आपको लगता है कि आप वास्तव में स्थापित प्रक्रिया शुरू कर सकते हैं ...

RPM एक विनिर्देश फ़ाइल (.spec) में दिए गए निर्देशों की एक सूची का उपयोग करके स्थापित करते हैं जो आमतौर पर Filesystem पदानुक्रम का पालन करते हैं। उस पदानुक्रम पर अधिकांश पथ लगभग हमेशा ऑपरेटिंग सिस्टम पथ होते हैं न कि उपयोगकर्ता पथ। इसलिए जब तक आपके उपयोगकर्ता के पास RPM इंस्टॉल होने वाले सभी रास्तों तक पहुँच नहीं है, तब तक यह निश्चित रूप से विफल हो जाएगा। यदि आप एक ऐसा RPM बनाते हैं जो इसके सभी रास्तों को /home/me(या किसी और पथ को आप के साथ) उपसर्ग करता है , तो यह काम करेगा। इसके लिए एक src.rpm प्राप्त करना होगा और इसे अन्य उत्तरों में बताए अनुसार निकालना होगा, फिर इसे पुनर्निर्माण करना होगा। जब तक आप ऐसा करते हैं, तब तक आप बस रूट एक्सेस प्राप्त करने या खरोंच से सॉफ़्टवेयर के निर्माण पर विचार कर सकते हैं (आमतौर पर आप क्या करते हैं यदि आप कई मशीनों में सॉफ़्टवेयर वितरित करने की योजना नहीं बनाते हैं)।

मैन्युअल निर्माण प्रक्रिया में आपकी सहायता करने के लिए चतुर चालें हैं। उदाहरण के लिए, आप अपनी सभी निर्भरता प्राप्त करने के लिए RPM में पहले से सूचीबद्ध निर्भरता का उपयोग कर सकते हैं: https://stackoverflow.com/a/13877738/1236128

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.