GNU/Linux >> Belajar Linux >  >> Linux

Membuat program di bin

Ada dua cara untuk memungkinkan Anda menjalankan biner tanpa menentukan jalurnya (tidak termasuk membuat alias atau fungsi shell untuk menjalankannya dengan jalur absolut untuk Anda):

  1. Salin ke direktori yang ada di $PATH Anda .
  2. Tambahkan direktori tempatnya ke $PATH Anda .

Untuk menyalin file ke direktori di jalur Anda, misalnya /usr/local/bin (di mana perangkat lunak yang dikelola secara lokal seharusnya berada), Anda harus memiliki hak superuser, yang biasanya berarti menggunakan sudo :

$ sudo cp -i mybinary /usr/local/bin

Harus berhati-hati untuk tidak menimpa file yang ada di direktori target (inilah mengapa saya menambahkan -i di sini).

Untuk menambahkan direktori ke $PATH Anda , tambahkan baris di ~/.bashrc Anda file (jika Anda menggunakan bash ):

PATH="$HOME/bin:$PATH"

... jika biner ada di $HOME/bin .

Ini memiliki keuntungan bahwa Anda tidak perlu memiliki hak superuser atau mengubah/menambahkan apa pun di sistem dasar pada mesin Anda. Anda hanya perlu memindahkan biner ke bin direktori direktori home Anda.

Perhatikan, ubah ke .bashrc berlaku ketika file bersumber lain kali, yang terjadi jika Anda membuka terminal baru atau logout dan masuk lagi, atau menjalankan source ~/.bashrc secara manual.


Anda harus membaca lebih lanjut tentang variabel PATH. Saya sangat curiga bahwa Anda harus menggunakan (atau mengubahnya) dengan tepat.

Saya ingin dapat memasukkannya ke dalam direktori bin

Saya kira maksud Anda /bin/ atau /usr/bin/ . Saya tidak yakin apakah bijaksana untuk menambahkan program Anda sendiri di sana. Mungkin akan lebih baik untuk meletakkan symlink di dalamnya (misalnya menggunakan sesuatu seperti ln -sv $(realpath foobar.out) /usr/bin/ ), jika Anda benar-benar ingin program Anda muncul di sana (yang mungkin merupakan kesalahan IMHO karena Anda mengacaukan manajer paket distribusi Anda).

Mungkin menginstal program Anda di /usr/local/bin/ jauh lebih bijaksana (meninggalkan keduanya /bin/ dan /usr/bin/ utuh, seperti yang disediakan dan dikelola oleh distribusi Linux Anda). Lihat LSB dan baca selengkapnya tentang Standar Hierarki File.

... seperti perintah di seluruh sistem misalnya .... cd

Ini adalah kesalahpahaman yang kuat dari pihak Anda (dalam varian asli pertanyaan Anda, Anda dengan benar menghapus cd nanti). cd bukan dan tidak dapat dieksekusi, ini (dan harus) merupakan perintah bawaan dari shell Anda.

Anda mungkin ingin membaca Pemrograman Linux Lanjutan yang dapat diunduh secara gratis untuk memahami mengapa cd tidak dapat dieksekusi (direktori kerja saat ini adalah bagian dari status setiap proses, dan setiap proses memiliki prosesnya sendiri dan dapat mengubahnya menggunakan chdir(2)...)


install /path/to/oobar.out /usr/local/bin/

Linux
  1. Python – Bagaimana /usr/bin/env Mengetahui Program Yang Digunakan?

  2. Cd Ke Direktori Nama-Tidak Dikenal Di Jalur yang Diketahui?

  3. Menghitung jumlah file dalam direktori menggunakan C

  1. Mengecualikan direktori saat membuat file .tar.gz

  2. file_put_contents tidak membuat file txt

  3. Kesalahan fatal:cuda.h:Tidak ada file atau direktori seperti itu

  1. Membuat direktori baru di C

  2. Mengapa Bash tidak memberikan file atau direktori seperti itu untuk program yang ada di PATH saya?

  3. Bagaimana cara menambahkan subdirektori bin dari direktori pertama di GOPATH ke PATH?