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


125

इस मशीन पर मेरी कोई जड़ नहीं है

मैं जानना चाहूंगा कि क्या कोई तरीका है जिससे मैं उबंटू पैकेज डाउनलोड कर सकता हूं और उन्हें गैर-रूट के रूप में स्थापित कर सकता हूं ?

शायद मेरे ~/binया ~/usr/shareउस जैसे कुछ में? क्या इससे काम हो जायेगा?


1
उम्मीद है, वे जल्द ही इसका समर्थन करेंगे।
डोमी

4
आप लिनक्स के लिए पोर्टेबल ऐप्स का उपयोग कर सकते हैं: कोई इंस्टॉल नहीं, कोई रूट आवश्यक नहीं। इसे appimage.org पर पाएं । यहां तक ​​कि लिनस टोरवाल्ड्स भी इसे पसंद करते हैं। यह अजीब है, क्योंकि लिनुस को कभी भी कुछ पसंद नहीं है।
ipse lute

मेरा सुझाव है कि फर्जीवाड़े की कोशिश की जा रही है
रॉबर्ट पोलक

का एक संयोजन dpk -xऔर mvमेरे लिए काम किया। या, अगर dpkउपलब्ध भी नहीं है, arऔर पाइपिंग / संयोजन tarमेरे लिए बहुत प्रतिबंधित प्रणालियों पर काम करता है, तो यहां
iolsmit

जवाबों:


107

Apt सीधे इसका समर्थन नहीं करता है, लेकिन इसे करने के तरीके हैं।

एक schrootगैर-रूट चुरोट बनाने के लिए उपयोग करना है। यह कुछ हद तक शामिल प्रक्रिया है , लेकिन एक आपको कोड के संकलन के लिए चेरोट वातावरण स्थापित करने वाले कई डेवलपर्स के लिए सामुदायिक मदद मिलनी चाहिए।

दूसरा तरीका जो मुझे पता है वह एक .deb पैकेज से स्थापित करना है। आप इसे वेब साइट से डाउनलोड कर सकते हैं या यदि यह उबंटू रिपॉजिटरी में है तो आप इसके साथ डाउनलोड कर सकते हैं।

apt-get download package

packageपैकेज के नाम से बदलें

एक बार जब आप अपने डिबेट फ़ाइल dpkgको कमांड लाइन से सीधे कॉल करते हैं। निम्न उदाहरण आपके घर निर्देशिका में package.deb स्थापित करेगा।

dpkg -i package.deb --force-not-root --root=$HOME 

इस तरह dpkg का उपयोग करने का नुकसान यह है कि त्रुटि संदेश गुप्त होने की संभावना है; dpkg निर्भरता को स्वचालित रूप से हल नहीं करता है या निर्देशिका संरचना का निर्माण करता है जिसकी यह अपेक्षा करता है।

अंत में, आप apt-get sourceपैकेज के स्रोत को लाने के लिए कमांड का उपयोग कर सकते हैं और इसे स्थानीय रूप से स्थापित करने के लिए कॉन्फ़िगर कर सकते हैं। आमतौर पर ऐसा कुछ दिखता है:

apt-get source package
cd package
./configure --prefix=$HOME
make
make install

इस दृष्टिकोण का नुकसान यह है कि आपको इस दृष्टिकोण के लिए उपलब्ध विकास के माहौल की आवश्यकता है, और आप सभी निर्भरता को हल करने के लिए दर्जनों पैकेजों का संकलन कर सकते हैं।

संपादित करें:

जैसा कि dpkg -iकाम नहीं करता (टिप्पणी देखें), मैं इस विकल्प का सुझाव देता हूं:

dpkg -x package.deb dir

यह .deb पैकेज को dir करने के लिए निकालेगा। फिर आप PATH को निर्यात कर सकते हैं जहां बाइनरी है। जब तक बाइनरी की सभी निर्भरताएं स्थापित हो जाती हैं, तब तक इसे सामान्य रूप से चलना चाहिए।


1
यदि आपके पास रूट एक्सेस है, लेकिन आप विश्व स्तर पर एक विशेष पैकेज स्थापित नहीं करना चाहते हैं, तो आप एक पैकेज बनाने केsudo apt-get build-dep package लिए आवश्यक सब कुछ स्थापित करने के लिए उपयोग कर सकते हैं (इसके स्रोत के साथ मिलने के बाद )। apt-get source
व्लादिमीर पेंटेलेव

19
इस जवाब को 2010 में वापस लिखा गया था। क्या तब से लेकर अब तक कोई बदलाव किया गया है?
बेको

36
यहां तक ​​कि --force-not-root के साथ, मुझे "dpkg: त्रुटि: अनुरोधित ऑपरेशन के लिए सुपरसुपर विशेषाधिकार की आवश्यकता है"
क्लेमेंट

10
फोल्क्स, --force-not-root --root=$HOMEया रूपांतर इसके काम नहीं करेंगे। डेबियन बाइनरी पैकेज को घर की निर्देशिका, अवधि में स्थापित करने के लिए डिज़ाइन नहीं किया गया है। या, यह एक और तरीका है,। "निम्न उदाहरण आपके घर निर्देशिका में package.deb स्थापित करेगा।" नहीं, यह नहीं होगा।
फहीम मीठा

1
अफसोस की बात है कि यह काम नहीं करेगा। मैंने कोशिश की--force-not-root --root=/your/custom/path
वियतनाम

16

मुझे लगता है कि आप jedit स्थापित करना चाहते हैं । सबसे पहले आपको पैकेज ढूंढना होगा और उसे डाउनलोड करना होगा। मैं सिर्फ कुछ दर्पण से डिबेट फाइल लेता हूं और एक कंसोल / टर्मिनल खोलता हूं :

  1. mkdir /tmp/jedit && cd /tmp/jedit- इसमें एक नया diretory बनाता है tmpऔर इसमें बदलाव करता है।
  2. wget http://mirrors.kernel.org/ubuntu/pool/universe/j/jedit/jedit_4.3.1.dfsg-0ubuntu1_all.deb - सेल डाउनलोड करें
  3. ar x jedit_4.3.1.dfsg-0ubuntu1_all.debया, टाइप करने में आसान, ar x *.deb- यह फ़ाइल सामग्री को निकालता है
  4. tar xvzf data.tar.gz- फाइल में data.tar.gzवह सारा सामान होता है, जो आपको सॉफ्टवेयर को क्रियान्वित करने के लिए चाहिए होता है
  5. usr/bin/jedit संपादक को खोलता है
  6. किया हुआ :-)

आप अपने होम डायरेक्टरी में फाइलों को किसी बिंदु पर ले जा सकते हैं और उन्हें वहां से निष्पादित कर सकते हैं।


11
ध्यान दें कि पूर्व और बाद में स्थापित स्क्रिप्ट नहीं चलती हैं; आपको किसी भी निर्भरता या पथ को स्वयं हल करने की आवश्यकता होगी। लेकिन एक डिफ़ॉल्ट इंस्टॉल पर यह बहुत सारे डेस्कटॉप अनुप्रयोगों के लिए पर्याप्त है।
जूली

आप पैकेज को बिना खोजे भी डाउनलोड कर सकते हैं, बस apt-get डाउनलोड करें (अन्य उत्तर देखें)
lib

मुझे विश्वास है कि आपका लिंक टूट गया है।
विनीमुक्का

9

मैंने JuJu नामक एक कार्यक्रम लिखा है, जो मूल रूप से $ $ HOME / .juju निर्देशिका के अंदर वास्तव में एक छोटे से लिनक्स वितरण (सिर्फ पैकेज प्रबंधक वाले) को अनुमति देता है।

यह आपके कस्टम सिस्टम को प्रॉपोट के माध्यम से होम डायरेक्टरी के अंदर पहुंचाने की अनुमति देता है और इसलिए, आप रूट विशेषाधिकारों के बिना किसी भी पैकेज को स्थापित कर सकते हैं। यह सभी प्रमुख लिनक्स वितरणों के लिए ठीक से चलेगा, एकमात्र सीमा यह है कि जूजू न्यूनतम अनुशंसित संस्करण 2.6.32 के साथ लिनक्स कर्नेल पर चल सकता है।

उदाहरण के लिए, JuJu स्थापित करने के बाद jedit स्थापित करने के लिए:

$>juju -f
(juju)$> pacman -S jedit
(juju)> jedit

यह उबंटू दाईं ओर बस ठीक चलेगा?
सेठ

हां, अगर ubuntu का linux kernel संस्करण अधिक है या 2.6.32 के बराबर है तो यह काम करेगा।
user967489

2
पहले मुझे लगा कि आप इस बारे में बात कर रहे हैं । दूसरा पूंजीकृत जम्मू अंतर बनाता है।
कोन मन

1
सवाल यह था कि क्या हम उबंटू पैकेज स्थापित कर सकते हैं। सबसे मज़बूत होने पर, हम केवल ArchLinux पैकेज स्थापित कर पाएंगे और उबंटू पैकेज नहीं। उदाहरण के लिए यदि वही पैकेज आर्कलिनक्स के लिए उपलब्ध नहीं है, तो यह मदद नहीं करेगा। उस ने कहा, जुनैद के लिए धन्यवाद।
किरण
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.