Ubuntu ~ / .local / बिन में एक निष्पादन योग्य फ़ाइल नहीं मिल सकता है


12
after installation with

pip3 install --user steem-piston
you will get a new executable piston installed in ~/.local/bin

मैंने पाइप इंस्टॉल का उपयोग करके उपकरण स्थापित किया है, लेकिन मुझे निष्पादन योग्य फ़ाइल नहीं मिल रही है।

मुझे पूरा यकीन नहीं है कि मैं समझता हूं कि यह निर्देशिका क्या है: ~ / .लोकल / बिन।

क्या यह सिर्फ जड़ / स्थानीय / बिन है?

जवाबों:


11

~/आपके होम फ़ोल्डर के लिए एक शेल संक्षिप्त नाम है, आमतौर पर /home/USERNAME/, जहां USERNAMEआपके उपयोगकर्ता का नाम है। यह वैसा ही है$HOME

~/.local/binएक सबफ़ोल्डर है जिसका binनाम .localआपके घर के फ़ोल्डर में सबफ़ोल्डर में है।

आप उपयोग कर सकते हैं

~/.local/bin/pip3

अपने नए pip3निष्पादन योग्य को कॉल करने के लिए । इसे जोड़ने के लिए आसान हो सकता है ~/.local/binकरने के लिए $PATHवातावरण चर, देखना मेरे पथ के लिए एक निर्देशिका जोड़ने के लिए कैसे? इसलिए आपको ~/.local/bin/हर समय टाइप करने की आवश्यकता नहीं है ।

सुनिश्चित करें कि आप इसे पुराने मूल्य से पहले जोड़ते हैं $PATH, जैसे

PATH="$HOME/.local/bin/:$PATH"

आपके पोस्ट के लिए शुक्रिया। दुर्भाग्य से, मैं घर फ़ोल्डर में सबफ़ोल्डर नहीं देख सकता (क्या यह एक छिपी हुई फ़ाइल है?)। और जब मैं उस कमांड को टर्मिनल में टाइप करता हूं तो मुझे मिलता है: bash: /home/myname/.local/bin/pip3: ऐसी कोई फाइल या निर्देशिका नहीं
TabulaSmaragdina

हां, यदि किसी फ़ाइल या फ़ोल्डर का नाम डॉट से शुरू होता है, तो वह डिफ़ॉल्ट रूप से छिपा होता है। आप छिपी हुई फ़ाइलों और फ़ोल्डरों को भी प्रदर्शित ls -aकरने के लिए उपयोग कर सकते हैं ls
फ्लोरियन डिस्च जुले

@TabulaSmaragdina यह अजीब है कि फ़ाइल नहीं मिली है। दौड़ने की कोशिश करो ls -a ~/.local/bin। यदि आउटपुट लंबा है, तो कृपया इसे अपने प्रश्न में संपादित करें।
१६:१६

1
क्या आपका मतलब नहीं है ~/.local/bin/piston?
टेराडॉन

नोट: ~/.local/bin/आधुनिक उबंटू में पहले से ही $ PATH है।
एरोन फ्रेंके

7

~/.local/binUbuntu 16.10 में PATH में जोड़ा गया है, और 16.04 पर वापस आ गया है। Https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562 देखें

यदि आप सभी अपडेट के साथ Ubuntu> = 16.04 चला रहे हैं, तो यह पहले से ही ठीक होना चाहिए। यदि नहीं, तो आप इसे मैन्युअल रूप से जोड़ सकते हैं:

किसी एकल उपयोगकर्ता के लिए, फ़ाइल को संपादित करें ~/.profile, और उसके अंत में जोड़ें:

PATH="$HOME/.local/bin:$PATH"

यदि आप चाहते हैं कि कोई भी नव-निर्मित उपयोगकर्ता ऐसा करे, तो आप उसी पंक्ति को अंत में जोड़ सकते हैं /etc/skel/.profile


0

मैं आज ही यह कर रहा था, ऐसा लगता है जैसे स्पष्ट प्रलेखन उन लोगों के लिए दुर्लभ है जो क्या स्थापित है, और कहाँ पर कुछ नियंत्रण रखना चाहते हैं।

मान लीजिए कि आपने pip3 इंस्टॉल किया है जो भी हो, यह ~ / .local के तहत सामान डालने के लिए डिफॉल्ट करता है, जैसा कि आप जानते हैं। फ़ाइल प्रकारों को विभाजित करने के लिए यूनिक्स में इसकी प्रथा, ~ / .लोकल / बिन के तहत "रन करने योग्य" डालते हैं।

एक टर्मिनल में, अपना रास्ता देखने के लिए इसे टाइप करें:

$ echo $PATH

जांचें कि आपके पास ~ / .local में स्थापित अजगर सामग्री है

$ ls -la ~/.local/bin

यह पुष्टि करता है कि निष्पादन योग्य फाइलें मेरे लिए हैं, या मेरे लिए है। यदि वे फ़ाइल अनुमतियां "x" दिखाते हैं तो वे निष्पादन योग्य हैं।

अब, उस निर्देशिका को टर्मिनल के भीतर पथ में जोड़ें

$ export PATH=~/.local/bin:$PATH

परिवर्तन देखने के लिए अपना पथ फिर से जांचें। कृपया याद रखें कि यह केवल उस टर्मिनल सत्र के लिए एक अस्थायी सेटिंग है। यह एक ही समय में या भविष्य में अन्य टर्मिनलों पर लागू नहीं होता है। चीजों को परखने के लिए यह एक अच्छी जगह है।

उसके बाद, ~ / .local / bin के भीतर निष्पादन योग्य प्रत्येक प्रोग्राम को कमांड लाइन में अपना नाम टाइप करने पर चलाना चाहिए। उदाहरण के लिए, "~ / .local / bin / jupyter" चलाने की कोई आवश्यकता नहीं है। बस "जुपिटर" टाइप करें। "./" की कोई आवश्यकता नहीं है जो आप कभी-कभी देखते हैं, जब आप कार्यशील निर्देशिका से एक प्रोग्राम लॉन्च करते हैं जो कि पथ में नहीं है।

यदि आप बाद में तय करते हैं कि आप इसे स्थायी बनाना चाहते हैं, ताकि ~ / .Local / bin आपके PATH में हमेशा बना रहे, तो आप कुछ पर्यावरण कॉन्फ़िगरेशन फ़ाइलों को संपादित करके ऐसा कर सकते हैं। आपके सेटअप के आधार पर, उदाहरण के लिए, मेरे होम फोल्डर ".bashrc" फ़ाइल में, अंतिम पंक्ति "PATH = $ PATH: $ HOME / bin" है। इसलिए मैं उस मोर्चे पर $ HOME / लोकल / बिन रख सकता था। नोट मैंने $ Home लिखी है, वहाँ "~" नहीं। फिर जब भी मैं एक BASH शेल का उपयोग करता हूं, PATH निश्चित हो जाएगा। यदि आप अन्य गोले का उपयोग कर सकते हैं, तो मुझे लगता है कि इसके बजाय ~ / .profile को संपादित करना सही बात है। मुझे लगता है कि उबंटू में सभी गोले उस फ़ाइल को स्रोत बनाएंगे।

मेरे मामले में, मैंने पाइप 3 के साथ कई कार्यक्रम स्थापित किए, जैसे कि ज्यूपिटर। यह सुनिश्चित करने का एक तरीका है कि जहां स्थापित किया गया था उसे चलाना है

$ pip3 list

उपलब्ध सभी पैकेजों को दिखाता है, न कि केवल pip3 द्वारा स्थापित।

$ pip3 show jupyter

मेरे मामले में, उदाहरण के लिए:

---
Metadata-Version: 2.0
Name: jupyter
Version: 1.0.0
Summary: Jupyter metapackage. Install all the Jupyter components in one go.
Home-page: http://jupyter.org
Author: Jupyter Development Team
Author-email: jupyter@googlegroups.org
Installer: pip
License: BSD
Location: /home/pauljohn/.local/lib/python3.5/site-packages
Requires: nbconvert, ipykernel, ipywidgets, notebook, jupyter-console, qtconsole
Classifiers:
  Intended Audience :: Developers
  Intended Audience :: System Administrators
  Intended Audience :: Science/Research
  License :: OSI Approved :: BSD License
  Programming Language :: Python
  Programming Language :: Python :: 2
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3
  Programming Language :: Python :: 3.3
  Programming Language :: Python :: 3.4

मैं नहीं चाहता कि यह एक लौ की तरह लगे, लेकिन यह एक हमले की तरह लग सकता है। मैं आपको सलाह देता हूं कि उत्सुकता से सलाह का पालन न करें कि यहां कुछ लोग "sudo pip3 xxx" चलाने की पेशकश करेंगे। आम तौर पर, आप बजाय केवल डेबियन पैकेजों के साथ रूट इंस्टॉल करते हैं, pip3 के साथ नहीं। यदि आप sudo के बिना चलते हैं, तो आप उपयोगकर्ता खाते में खतरे को सीमित कर रहे हैं। यदि आप स्क्रिप्ट को रूट के रूप में चलाते हैं, तो आप अपनी हार्ड डिस्क के चारों ओर फाइलें बिखेर सकते हैं और इसे पछतावा कर सकते हैं। खासकर यदि अन्य लोग उस कंप्यूटर में लॉग इन करते हैं और उसका उपयोग करते हैं, तो जब तक आप आश्वस्त नहीं होते हैं तब तक कुछ भी करने से बचें।

यह भी ध्यान देने योग्य है, कि pip3 डिफॉल्ट को ~ / .लोक में स्थापित करने के लिए डिफॉल्ट करता है, लेकिन यह आवश्यक नहीं है। "मैन पिप 3" पढ़ें, "-t" (--target) देखें। आप इंस्टॉल डायरेक्टरी को निर्दिष्ट कर सकते हैं। मुझे लगता है कि यह अच्छा है क्योंकि आप किसी भी अन्य निर्देशिका को किसी भी नुकसान को सीमित कर सकते हैं और जब चाहें इसे हटा सकते हैं। ~ /। लोकोल में अन्य कार्यक्रमों द्वारा स्थापित इसमें अन्य मूल्यवान चीजें हो सकती हैं और आप उन्हें अनसुना नहीं करेंगे। मुझे लगता है कि ~ /। एक जगह के रूप में वैसे भी कार्यक्रमों की तुलना में सेटिंग्स के लिए अधिक है।

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