Ubuntu tidak dapat menemukan file yang dapat dieksekusi di ~ / .local / bin

12
after installation with

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

Saya menginstal alat menggunakan pip install, tetapi saya tidak dapat menemukan file yang dapat dieksekusi.

Saya tidak yakin saya mengerti apa direktori ini: ~ / .local / bin.

Apakah hanya root / local / bin?

TabulaSmaragdina
sumber

Jawaban:

11

~/adalah singkatan shell untuk folder rumah Anda, biasanya /home/USERNAME/, di mana USERNAMEnama pengguna Anda. Itu sama dengan$HOME

~/.local/binadalah subfolder bernama bindalam subfolder yang disebutkan .localdi folder rumah Anda.

Kamu bisa memakai

~/.local/bin/pip3

untuk memanggil pip3executable baru Anda . Mungkin lebih mudah untuk menambahkan ~/.local/binke $PATHvariabel lingkungan, lihat Bagaimana cara menambahkan direktori ke jalur saya? jadi Anda tidak perlu mengetik ~/.local/bin/sepanjang waktu.

Pastikan Anda menambahkannya sebelum nilai lama $PATH, seperti

PATH="$HOME/.local/bin/:$PATH"
Florian Diesch
sumber
Terima kasih atas kiriman Anda. Sayangnya, saya tidak dapat melihat subfolder di folder rumah (apakah ini file tersembunyi?). Dan ketika saya mengetikkan perintah itu di terminal saya mendapatkan: bash: /home/myname/.local/bin/pip3: Tidak ada file atau direktori seperti itu
TabulaSmaragdina
Ya, jika nama file atau folder dimulai dengan titik itu disembunyikan secara default. Anda dapat menggunakan ls -auntuk memiliki lstampilan yang tersembunyi file dan folder, juga.
Florian Diesch
@ TabulaSmaragdina Aneh bahwa file tersebut tidak ditemukan. Coba jalankan ls -a ~/.local/bin. Jika hasilnya panjang, harap edit ke pertanyaan Anda.
wjandrea
1
Bukankah maksud Anda ~/.local/bin/piston?
terdon
Catatan: ~/.local/bin/sudah dalam $ PATH di Ubuntu modern.
Aaron Franke
7

~/.local/bintelah ditambahkan ke PATH di Ubuntu 16.10, dan di-backport ke 16.04. Lihat https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1588562

Jika Anda menjalankan Ubuntu> = 16,04 dengan semua pembaruan, itu sudah baik-baik saja. Jika tidak, Anda dapat menambahkannya secara manual:

Untuk satu pengguna, edit file ~/.profile, dan tambahkan pada akhirnya:

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

Jika Anda ingin pengguna yang baru dibuat memiliki ini, Anda dapat menambahkan baris yang sama ini di akhir /etc/skel/.profile

Mossroy
sumber
0

Saya baru saja melakukan ini hari ini, sepertinya dokumentasi yang jelas langka bagi orang yang ingin mengendalikan apa yang diinstal, dan di mana.

Seandainya Anda telah menjalankan instalasi pip3 apa pun, defaultnya adalah meletakkan barang-barang di bawah ~ / .local, seperti yang Anda ketahui. Biasanya di Unix untuk membagi jenis file, letakkan yang "dapat dijalankan" di bawah ~ / .local / bin.

Di terminal, ketik ini untuk melihat jalur Anda sekarang:

$ echo $PATH

Periksa apakah Anda sudah menginstal python di ~ / .local

$ ls -la ~/.local/bin

Itu mengkonfirmasi file yang dapat dieksekusi ada di sana, atau tidak untuk saya. Jika izin file tersebut menunjukkan "x" mereka dapat dieksekusi.

Sekarang, tambahkan direktori itu ke jalur di dalam terminal

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

Periksa jalur Anda lagi untuk melihat perubahannya. Harap diingat bahwa itu adalah pengaturan sementara hanya untuk sesi terminal itu. Itu tidak berlaku untuk terminal lain pada saat yang sama atau di masa depan. Ini adalah tempat yang bagus untuk menguji berbagai hal.

Setelah itu, setiap program yang dapat dieksekusi dalam ~ / .local / bin harus dijalankan jika Anda mengetikkan namanya di baris perintah. Tidak perlu menjalankan "~ / .local / bin / jupyter", misalnya. Cukup ketik "jupyter". Tidak perlu untuk "./" yang Anda lihat kadang-kadang, saat itulah Anda meluncurkan program dari direktori kerja yang tidak ada di jalur.

Jika nanti Anda memutuskan untuk menjadikannya permanen, sehingga ~ / .local / bin selalu ada di PATH Anda, Anda dapat melakukannya dengan mengedit beberapa file konfigurasi lingkungan. Bergantung pada pengaturan Anda, misalnya, dalam file folder ".bashrc" folder rumah saya, baris terakhir adalah "export PATH = $ PATH: $ HOME / bin". Jadi saya bisa meletakkan $ HOME / local / bin di depan itu. Catatan saya menulis $ HOME, bukan "~" di sana. Lalu setiap kali saya menggunakan shell BASH, PATH akan diperbaiki. Jika Anda mungkin menggunakan shell lain, saya pikir hal yang benar adalah mengedit profil ~ /. Saya pikir semua shell di Ubuntu akan sumber file itu.

Dalam kasus saya, saya menginstal beberapa program dengan pip3, seperti jupyter. Salah satu cara untuk memastikan di mana yang diinstal adalah menjalankan

$ pip3 list

memperlihatkan semua paket yang tersedia, bukan hanya yang diinstal oleh pip3.

$ pip3 show jupyter

Dalam kasus saya, misalnya:

---
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

Saya tidak ingin ini terdengar seperti nyala api, tetapi ini mungkin tampak seperti serangan. Saya akan memperingatkan Anda untuk tidak mengikuti saran yang beberapa orang di sini akan menawarkan, untuk menjalankan "sudo pip3 xxx". Secara umum, Anda lebih suka menjalankan instalasi root hanya dengan paket Debian, bukan dengan pip3. Jika Anda menjalankan tanpa sudo, Anda membatasi bahaya ke akun pengguna. Jika Anda melakukan kesalahan saat menjalankan skrip sebagai root, Anda dapat menyebarkan file di sekitar hard disk Anda dan menyesalinya. Terutama jika orang lain masuk dan menggunakan komputer itu, hindari melakukan apa pun sebagai root kecuali Anda yakin.

Juga perlu dicatat, bahwa pip3 default untuk menginstal ke ~ / .local, tetapi itu tidak perlu. Baca "man pip3", cari "-t" (--target). Anda dapat menentukan direktori instal. Saya pikir itu bagus karena Anda dapat membatasi kerusakan pada satu direktori lain dan menghapusnya kapan pun Anda mau. ~ / .local mungkin memiliki hal-hal berharga lainnya yang diinstal oleh program lain dan Anda lebih suka tidak melenyapkannya. Saya pikir ~ / .local sebagai tempat lebih banyak untuk pengaturan daripada program.

pauljohn32
sumber