Thêm một thực thi mới vào biến môi trường PATH?


16

Tôi đang cố gắng cài đặt thư viện này được gọi là ph Phantomjs.

Các hướng dẫn bao gồm dòng này:

http://code.google.com.vn/p/ph Phantomjs/wiki/BuildIn thi

Để thuận tiện, hãy sao chép bin / ph Phantomjs.app / Nội dung / MacOS / ph Phantomjs thực thi vào một số thư mục trong PATH của bạn.

Làm thế nào để tôi làm điều này?


Tôi không nghĩ rằng bạn cần phải lo lắng về việc đưa nó vào con đường của bạn vì bin đã có sẵn trong đó. Nhưng nếu bạn muốn, bạn có thể tìm thấy làm thế nào để đạt được điều đó ở đây: troubleshooters.com/linux/prepostpath.htm

@cksum nhưng đây là một con đường tương đối; chúng tôi không biết những gì đến trước "thùng".
tạm biệt

@bneely Có, nhưng không có ~ / bin. Các vị trí duy nhất là / bin, / usr / bin và / usr / local / bin. Tất cả đều nằm trong con đường của bạn rồi. Nếu bạn chạy, pathbạn sẽ thấy mặc định như sau: PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binTôi chưa xem qua tập lệnh cài đặt của chương trình đang đề cập, nhưng sẽ rất khó để cài đặt vào thư mục 'bin' của chính nó ở đâu đó. Và bạn không thể thêm đường dẫn tương đối AFAIK. Tôi có xu hướng nghĩ chỉ là một lỗi đánh máy từ một hướng dẫn cẩu thả.

Tôi biết đường dẫn tương đối không thể được thêm vào; Tôi nói rằng đường dẫn trong câu hỏi là đường dẫn tương đối vì nó không bắt đầu bằng / hoặc a ~.
tạm biệt

Câu trả lời:


10

Để tìm hiểu những gì trong PATH của bạn, hãy mở một cửa sổ Terminal và chạy lệnh này : echo $PATH. Đầu ra là một danh sách các thư mục được phân tách bằng dấu hai chấm, nội dung mà bạn có thể chạy mà không chỉ định đường dẫn đầy đủ.

Vì / usr / bin nằm trong đường dẫn của tôi, tôi có thể chạy wlệnh đơn giản bằng cách nhập wthay vì đầy đủ /usr/bin/w.

Ngoài ra, bạn không phải di chuyển tệp thực thi vào một trong các thư mục PATH được liệt kê. Các tùy chọn khác bao gồm

  • Để lại tệp thực thi, và liên kết đến nó từ một trong các thư mục PATH
  • Thêm một thư mục vào PATH của bạn bằng cách đặt nó rõ ràng trong tập lệnh đăng nhập cho trình bao của bạn

Vui lòng làm theo lời khuyên của @ Gerry trong câu trả lời khác và liên kết với nó. Đó là cách sạch nhất!
cregox

Nếu, trong mọi trường hợp, bạn cần một thư mục đầy đủ trong PATH, vì có nhiều tệp thực thi trong đó bạn cần truy cập, không có tùy chọn nào khác và đó là những gì PATHdành cho. Hiện tại chúng tôi sử dụng ~ / .bash_profile để thêm vào đường dẫn .
cregox

19

Cách sạch nhất để đạt được điều này sẽ là liên kết nhị phân trong thư mục / usr / local / bin (được bao gồm trong PATH theo mặc định). Bạn có thể cần phải tạo thư mục này nếu nó chưa tồn tại. Bạn có thể kiểm tra xem các thư mục này đã có trong PATH của bạn chưa bằng cách mở Terminal.app và gõ:

echo $PATH

Điều này sẽ tạo ra một danh sách phân cách dấu hai chấm của tất cả các thư mục trong PATH của bạn.

Nếu các thư mục / usr / local hoặc / usr / local / bin chưa tồn tại, hãy thực hiện như sau:

sudo mkdir -p /usr/local/bin

Symlink nhị phân, thay thế (/ Ứng dụng) bằng đường dẫn đến ph Phantomjs.app nếu nó khác:

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

Bây giờ bạn sẽ không gặp vấn đề gì khi thực hiện ph Phantomjs từ dòng lệnh.


+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

Quay trở lại gốc rễ của vấn đề của bạn, nếu bạn đang cài đặt ph Phantomjs, bạn có thể sử dụng npm để làm cho nó dễ dàng hơn.

Nếu bạn làm thì bạn chỉ có thể chạy:

npm install -g phantomjs-prebuilt

Nó sẽ cài đặt nhị phân bên trong thư mục bin thích hợp. (cờ -g cho biết npm rằng gói sẽ được cài đặt trên toàn cầu)


0

Trong khi symlink liên kết tệp từ một directoy khác hoạt động, tôi thực sự muốn sao chép / di chuyển tệp đến usr/local/bin, để không có "hai lần".

cp bin/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin
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.