Có thể thêm một tệp thực thi, thay vì toàn bộ thư mục vào $ PATH của tôi không?


9

Tôi đã cài đặt XAMPP trong OSX và theo mặc định, nó chuẩn bị đường dẫn đến binthư mục riêng của nó (có đầy đủ các tiện ích khác nhau) cho $PATHbiến của tôi :

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

Thật không may, một trong những tiện ích của nó được gọi HEAD, nhờ hệ thống tệp không phân biệt chữ hoa chữ thường của OSX, va chạm với headlệnh Unix . XAMPP HEADhoàn toàn không liên quan đến head(Tôi nghĩ rằng nó đưa ra yêu cầu HTTP Head).

Tất nhiên, tôi muốn sử dụng cả hai headvà XAMPP, vì vậy tôi chỉ cần thay đổi thứ tự biến đường dẫn:

export PATH="$PATH:$XAMPP_PHP"

Điều này cho phép tôi sử dụng head, nhưng bây giờ có sự xung đột giữa phiên bản PHP của XAMPP (ví dụ: 5.5) và phiên bản PHP được cài đặt sẵn đi kèm với OSX (5.3). Vì đường dẫn đến 5.3 xuất hiện trước, nên cuối cùng nó được ưu tiên.

Kế hoạch của tôi cho một giải pháp hackish là thêm vào đường dẫn tệp đầy đủ + đặt tên phiên bản PHP của XAMPP , sau đó nối phần còn lại của đường dẫn sau $PATH:

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

Điều này dường như không hoạt động. Khi tôi khởi động lại bash và kiểm tra php -v, nó vẫn còn trên PHP 5.3 - phiên bản tích hợp. Thậm chí có thể thêm một đường dẫn tệp cụ thể $PATHvào không?


4
Không, $PATHcó thể chỉ bao gồm các thư mục. Bạn chỉ có thể liên kết symlink thực thi cụ thể mà bạn muốn vào một thư mục hiện có trong của bạn $PATH.
larsks

Câu trả lời:


8

Giả sử điều đó echo "$PATH"hiển thị /usr/local/bintrên đường dẫn của bạn và cho rằng đây là máy tính xách tay cá nhân của bạn:

Tạo một liên kết tượng trưng trong /usr/local/binđó trỏ đến tệp thực thi mà bạn muốn.

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

Nếu đó là một máy tính dùng chung và bạn không muốn ảnh hưởng đến những người dùng khác, tôi khuyên bạn nên thiết lập tiện ích mở rộng tùy chỉnh cho PATH của mình ~/.bash_profile. Tôi có một cái cho mình:

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

Sau đó, tôi có thể đặt các liên kết tượng trưng tùy chỉnh, tập lệnh, v.v. ~/.binvà chúng sẽ chạy như mong đợi (mà không ghi đè các lệnh hệ thống tồn tại trước đó trong PATH của tôi).

Tôi đặt .ở đầu, .binvì vậy tôi không phải xem thư mục khi duyệt trong Finder.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.