Ubuntu ไม่สามารถหาไฟล์ที่ปฏิบัติการได้ใน ~ / .local / bin


12
after installation with

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

ฉันติดตั้งเครื่องมือโดยใช้การติดตั้ง pip แต่ไม่พบไฟล์ปฏิบัติการ

ฉันค่อนข้างแน่ใจว่าฉันเข้าใจสิ่งที่ไดเรกทอรีนี้: ~ / .local / bin

เป็นเพียง root / 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แสดงไฟล์และโฟลเดอร์ที่ซ่อนไว้ได้เช่นกัน
Florian Diesch

@TabulaSmaragdina มันแปลกที่ไม่พบไฟล์ ls -a ~/.local/binลองใช้ หากผลลัพธ์ยาวโปรดแก้ไขลงในคำถามของคุณ
wjandrea

1
คุณไม่หมายถึง~/.local/bin/pistonเหรอ
terdon

หมายเหตุ: ~/.local/bin/มีอยู่ใน $ PATH บน Ubuntu ที่ทันสมัย
Aaron Franke

7

~/.local/binได้รับการเพิ่มใน PATH ใน Ubuntu 16.10 และ backported เป็น 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 ตามที่คุณรู้ มันเป็นธรรมเนียมใน Unix เพื่อแบ่งประเภทไฟล์ให้ใส่ "runable" ภายใต้ ~ / .local / bin

ในเทอร์มินัลพิมพ์สิ่งนี้เพื่อดูเส้นทางของคุณทันที:

$ echo $PATH

ตรวจสอบว่าคุณมีสิ่งหลามที่ติดตั้งใน ~ / .local

$ ls -la ~/.local/bin

นั่นเป็นการยืนยันว่าไฟล์เรียกทำงานอยู่ที่นั่นหรือทำเพื่อฉัน หากสิทธิ์ของไฟล์เหล่านั้นแสดง "x" พวกเขาจะสามารถใช้งานได้

ตอนนี้เพิ่มไดเรกทอรีนั้นลงในพา ธ ภายในเทอร์มินัล

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

ตรวจสอบเส้นทางของคุณอีกครั้งเพื่อดูการเปลี่ยนแปลง โปรดจำไว้ว่าเป็นการตั้งค่าชั่วคราวสำหรับเซสชันเทอร์มินัลนั้นเท่านั้น มันไม่ได้ใช้กับอาคารอื่น ๆ ในเวลาเดียวกันหรือในอนาคต มันเป็นสถานที่ที่ดีในการทดสอบสิ่งต่าง ๆ

หลังจากนั้นทุกโปรแกรมที่ทำงานได้ภายใน ~ / .local / bin ควรรันถ้าคุณพิมพ์ชื่อในบรรทัดคำสั่ง ไม่จำเป็นต้องเรียกใช้ "~ / .local / bin / jupyter" เพียงพิมพ์ "jupyter" ไม่จำเป็นสำหรับ "./" ที่คุณเห็นบางครั้งนั่นคือเมื่อคุณเปิดโปรแกรมจากไดเรกทอรีการทำงานที่ไม่ได้อยู่ในเส้นทาง

หากคุณตัดสินใจในภายหลังว่าคุณต้องการที่จะให้ถาวรเพื่อให้ ~ / .local / bin อยู่ใน PATH ของคุณเสมอคุณสามารถทำได้โดยแก้ไขไฟล์กำหนดค่าสภาพแวดล้อมบางอย่าง ตัวอย่างเช่นขึ้นอยู่กับการตั้งค่าของคุณตัวอย่างเช่นในไฟล์ ".bashrc" ในโฮมโฟลเดอร์ของฉันบรรทัดสุดท้ายคือ "export PATH = $ PATH: $ HOME / bin" ดังนั้นฉันสามารถวาง $ HOME / local / bin ไว้ข้างหน้า หมายเหตุฉันเขียน $ HOME ไม่ใช่ "~" ในนั้น จากนั้นทุกครั้งที่ฉันใช้ BASH เชลล์จะมีการแก้ไข PATH หากคุณอาจใช้เชลล์อื่นฉันคิดว่าสิ่งที่ถูกต้องคือการแก้ไข ~ / .profile แทน ฉันคิดว่าเชลล์ทั้งหมดใน Ubuntu จะเป็นแหล่งไฟล์นั้น

ในกรณีของฉันฉันติดตั้งหลายโปรแกรมด้วย pip3 เช่น jupyter วิธีหนึ่งในการตรวจสอบว่าติดตั้งลงในที่ใดก็คือให้ทำงาน

$ 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" โดยทั่วไปคุณควรรันการติดตั้งรูทด้วยแพ็คเกจ Debian เท่านั้นไม่ใช่กับ pip3 หากคุณทำงานโดยไม่ใช้ sudo คุณจะได้รับอันตรายจากบัญชีผู้ใช้ หากคุณทำผิดขณะที่เรียกใช้สคริปต์ในฐานะรูทคุณอาจกระจายไฟล์รอบ ๆ ฮาร์ดดิสก์ของคุณและเสียใจได้ โดยเฉพาะอย่างยิ่งหากคนอื่น ๆ ลงชื่อเข้าใช้และใช้คอมพิวเตอร์เครื่องนั้นหลีกเลี่ยงการทำสิ่งใด ๆ ในฐานะรูทเว้นแต่คุณจะมั่นใจ

นอกจากนี้ยังควรสังเกตว่า pip3 มีค่าเริ่มต้นที่จะติดตั้งลงใน ~ / .local แต่ไม่จำเป็น อ่าน "man pip3" ค้นหา "-t" (--target) คุณสามารถระบุไดเรกทอรีการติดตั้ง ฉันคิดว่ามันดีเพราะคุณสามารถจำกัดความเสียหายของไดเรกทอรีอื่นและลบทิ้งเมื่อใดก็ตามที่คุณต้องการ ~ / .local อาจมีสิ่งที่มีค่าอื่น ๆ ติดตั้งอยู่โดยโปรแกรมอื่นและคุณจะไม่ลบล้างพวกเขา ฉันคิดว่า ~ / .local เป็นสถานที่สำหรับการตั้งค่ามากกว่าโปรแกรมต่อไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.