Menambahkan executable baru ke variabel lingkungan PATH?


16

Saya mencoba menginstal perpustakaan ini yang disebut phantomjs.

Instruksi termasuk baris ini:

http://code.google.com/p/phantomjs/wiki/BuildInstructions

Untuk kenyamanan, salin nampan bin / phantomjs.app yang bisa dieksekusi / Contents / MacOS / phantomjs ke beberapa direktori di PATH Anda.

Bagaimana saya melakukan ini?


Saya tidak berpikir Anda perlu khawatir tentang menempatkan itu di jalan Anda karena sudah ada di dalamnya. Tetapi jika Anda menginginkannya, Anda dapat menemukan cara mencapainya di sini: troubleshooters.com/linux/prepostpath.htm

@ cksum tetapi ini adalah jalur relatif; kita tidak tahu apa yang terjadi sebelum "tempat sampah".
bneely

@ benar-benar Ya, tapi tidak ada ~ / bin. Satu-satunya lokasi adalah / bin, / usr / bin dan / usr / local / bin. Semuanya sudah di jalur Anda. Jika Anda menjalankan pathAnda akan melihat yang berikut ini secara default: PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binSaya belum melihat melalui skrip instalasi program yang bersangkutan, tetapi akan sangat tidak mungkin untuk menginstal ke folder 'bin' itu sendiri di suatu tempat. Dan Anda tidak dapat menambahkan jalur relatif AFAIK. Saya cenderung berpikir hanya kesalahan ketik dari panduan ceroboh.

Saya tahu jalur relatif tidak dapat ditambahkan; Saya menyatakan bahwa jalur dalam pertanyaan adalah jalur relatif karena tidak dimulai dengan a / atau a ~.
bneely

Jawaban:


10

Untuk mengetahui apa yang ada di PATH Anda, buka jendela Terminal dan jalankan perintah ini: echo $PATH. Outputnya adalah daftar direktori yang dipisahkan oleh titik dua, yang isinya dapat Anda jalankan tanpa menentukan path lengkap.

Karena / usr / bin ada di jalur saya, saya dapat menjalankan wperintah hanya dengan mengetik walih-alih penuh /usr/bin/w.

Juga, Anda tidak harus memindahkan executable ke salah satu direktori PATH yang terdaftar. Pilihan lain termasuk

  • Biarkan executable di tempatnya, dan symlink ke sana dari salah satu direktori PATH
  • Tambahkan direktori ke PATH Anda dengan secara eksplisit mengaturnya di skrip login untuk shell Anda

Silakan, ikuti saran @ Gerry di jawaban yang lain, dan symlink . Ini cara terbersih!
cregox

Jika, secara kebetulan, Anda memerlukan direktori lengkap di PATHdalamnya, karena ada banyak executable di dalamnya yang perlu Anda akses, tidak ada opsi lain dan untuk itulah PATH. Saat ini kami menggunakan ~ / .bash_profile untuk ditambahkan ke path .
cregox

20

Cara terbersih untuk mencapai ini adalah dengan symlink biner di direktori / usr / local / bin (yang secara default termasuk dalam PATH). Anda mungkin perlu membuat direktori ini jika belum ada. Anda dapat memeriksa untuk melihat apakah direktori ini sudah ada di PATH Anda dengan membuka Terminal.app dan mengetik:

echo $PATH

Ini akan menghasilkan daftar semua direktori yang dibatasi oleh titik dua di PATH Anda.

Jika direktori / usr / local atau / usr / local / bin belum ada, jalankan yang berikut:

sudo mkdir -p /usr/local/bin

Simbolkan biner, ganti (/ Aplikasi) dengan path ke phantomjs.app jika berbeda:

sudo ln -s /Applications/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin

Sekarang Anda seharusnya tidak memiliki masalah menjalankan phantomjs dari baris perintah.


+1,ls /usr/local/bin/ || sudo mkdir /usr/local/bin/ ; sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
Jose Carlos Ramos Carmenates

3

Kembali ke akar masalah Anda, jika Anda menginstal phantomjs, Anda dapat menggunakan npm untuk membuatnya lebih mudah.

Jika Anda melakukannya maka Anda bisa menjalankan:

npm install -g phantomjs-prebuilt

yang akan menginstal biner di dalam direktori bin yang tepat. (flag -g menunjukkan ke npm bahwa paket harus diinstal secara global)


0

Sementara symlinking file dari karya directoy lain, saya lebih suka untuk benar-benar menyalin / memindahkan file usr/local/bin, untuk tidak memilikinya "dua kali".

cp bin/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.