linux कमांड मिला लेकिन sudo का उपयोग करते समय नहीं मिला


11

मैं इस तरह से एक python3 स्थापित चलाने की कोशिश कर रहा हूँ:

pip3 install django

मुझे त्रुटि मिली:

PermissionError: [Errno 13] अनुमति अस्वीकृत: '/usr/local/lib/python3.6/site-packages/pytz'

मैं फिर कोशिश करता हूं:

sudo pip3 install django

मुझे त्रुटि मिली:

sudo: pip3: कमांड नहीं मिली

यहाँ मेरा $ PATH कैसा दिखता है:

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin

मैं पाइप 3 में सूडो एक्सेस कैसे प्राप्त कर सकता हूं?

जवाबों:


9

सूडो PATHसुरक्षा कारणों से आपके वर्तमान उपयोगकर्ता के समान उपयोग नहीं कर रहा है। इसमें /etc/sudoersएक विकल्प है secure_pathजो सूडो के साथ कमांड चलाते समय उपयोग किए जाने वाले पथ को निर्दिष्ट करता है। मेरा ऐसा दिखता है:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

Sudo manpage से:

 secure_path   Path used for every command run from sudo.  If you don't trust the people running sudo to have a sane PATH environment
               variable you may want to use this.  Another use is if you want to have the “root path” be separate from the “user path”.
               Users in the group specified by the exempt_group option are not affected by secure_path.  This option is not set by
               default.

pip3आदेश शायद पथ द्वारा परिभाषित में नहीं है sudoersफ़ाइल। आप या तो रास्ता जोड़ सकते हैं या इस तरह कमांड secure_pathको पूरा रास्ता pip3दे सकते हैं:

sudo /path/to/pip3 install django

1

यह संभव है कि sudo उपयोग करने पर आपके $ PATH चर को संरक्षित न कर रहा हो। उदाहरण के लिए, कमांड में pip3 बाइनरी के लिए पूर्ण पथ का उपयोग करने का प्रयास करें sudo /path/to/pip3 install django:। यदि आप पूर्ण पथ के अनिश्चित हैं, तो करें which pip3


जो pip3 आउटपुट: / usr / स्थानीय / बिन / pip3। $ PATH चर अच्छा लगता है: /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin//ome/ec2- उपयोगकर्ता / बिन
पेटी

sudo echo $PATHकुछ अलग करता है ? क्या आपने pip3 के लिए पूर्ण पथ के साथ कमांड का प्रयास किया? परिणामों में कोई अंतर?
साफाडो

sudo समान आउटपुट देता है: /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home-ec2-user/bin
पेटी


0

मैंने django को इस तरह स्थापित किया:

pip3 install --user django

इससे समस्या ठीक हो गई।

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