Apakah mungkin menambahkan satu executable, daripada seluruh direktori, ke $ PATH saya?

9

Saya telah menginstal XAMPP di OSX, dan secara default ia menambahkan path ke bindirektori sendiri (penuh dengan berbagai utilitas) ke $PATHvariabel saya :

# Add path to XAMPP PHP version
export XAMPP_PHP=/Applications/XAMPP/xamppfiles/bin
export PATH="$XAMPP_PHP:$PATH"

Sayangnya, salah satu utilitasnya disebut HEAD, yang berkat sistem file case-insensitive OSX, bertabrakan dengan headperintah Unix . XAMPP HEADbenar-benar tidak berhubungan dengan head(saya pikir itu mengeluarkan permintaan HEAD HTTP).

Tentu saja, saya ingin menggunakan keduanya headdan XAMPP, jadi saya cukup mengubah urutan variabel path:

export PATH="$PATH:$XAMPP_PHP"

Ini memungkinkan saya menggunakan head, tetapi sekarang ada tabrakan antara versi PHP XAMPP (misalnya, 5.5), dan versi PHP yang diinstal sebelumnya yang datang dengan OSX (5.3). Karena jalan ke 5.3 lebih dulu, akhirnya diutamakan.

Rencana saya untuk solusi peretasan adalah dengan menambahkan dulu path file lengkap + beri nama versi PHP dari XAMPP , lalu tambahkan path selanjutnya setelah $PATH:

export PATH="/Applications/XAMPP/xamppfiles/bin/php:$PATH:$XAMPP_PHP"

Ini sepertinya tidak berhasil. Ketika saya memulai ulang bash dan memeriksa php -v, itu masih di PHP 5.3 - versi built-in. Apakah mungkin untuk menambahkan path file tertentu $PATHsama sekali?

alexw
sumber
4
Tidak, $PATHmungkin hanya terdiri dari direktori. Anda dapat dengan mudah menghubungkan executable tertentu yang Anda inginkan ke direktori yang ada di blog Anda $PATH.
larsks

Jawaban:

8

Dengan asumsi itu echo "$PATH"menunjukkan /usr/local/bindi jalur Anda, dan mengingat bahwa ini adalah laptop pribadi Anda:

Buat symlink /usr/local/binyang menunjuk ke executable yang Anda inginkan.

ln -s /Applications/XAMPP/xamppfiles/bin/php /usr/local/bin/php

Jika ini adalah komputer bersama dan Anda tidak ingin memengaruhi pengguna lain, saya sarankan untuk menyiapkan ekstensi khusus untuk PATH Anda di ~/.bash_profile. Saya punya satu sendiri:

$ grep PATH ~/.bash_profile 
export PATH="$PATH:$HOME/.bin"

Lalu saya bisa memasukkan symlink, skrip, dll. Kustom saya ~/.bindan mereka akan berjalan seperti yang diharapkan (tanpa mengabaikan perintah sistem yang ada sebelumnya di PATH saya).

Saya meletakkannya .di awal .binjadi saya tidak perlu melihat direktori saat browsing di Finder.

Wildcard
sumber