OK, xin lỗi nếu đây là một cái gì đó ngớ ngẩn, nhưng tôi đang cạn kiệt ý tưởng.
Mục tiêu: thêm vào trước /usr/local/bin
để$PATH
Vấn đề: $PATH
sẽ không làm những gì tôi muốn hoặc mong đợi
Làm thế nào tôi đến đây: Tôi muốn bắt đầu học lập trình, vì vậy tôi cảm thấy thoải mái khi quậy phá dưới mui xe, nhưng không có nhiều kinh nghiệm. Tôi đã cài đặt fish
shell (vì nó thân thiện!) Bằng cách sử dụng homebrew
và đặt nó làm shell mặc định (bên dưới system prefs>users & groups>advanced
). Tại một số điểm, tôi chạy brew doctor
đến để xem các bản cài đặt của tôi có toàn bộ hay không, và nó đề nghị tôi di chuyển /usr/local/bin
ra phía trước $PATH
để tôi có thể sử dụng bản cài đặt của mình git
thay vì bản sao hệ thống. Tốt thôi - nhưng giữa path_helper
và fish
, một cái gì đó đã xảy ra $PATH
ngoài tầm kiểm soát của tôi, và tôi không bao giờ có thể sắp xếp các con đường theo đúng cách.
Môi trường: OSX 10.8.2, nâng cấp từ 10.7ish, với xcode
và DevTools cài đặt, cộng x11
, homebrew
vàfish
Thông tin thêm: Tôi đã thiết shell mặc định của người dùng của tôi trở lại bash
, và cố gắng nhiều vỏ thru terminal.app
- bash
, fish
, sh
. Tôi đã chuyển /usr/local/bin
lên đầu /etc/paths
nhưng nó không thay đổi gì cả. Tôi đã xem qua các config.fish
tệp khác nhau và nhận xét những thứ có thể gây rối với $ PATH, không giúp được gì. Tôi có các tập tin sau /etc/paths.d/
:
./10-homebrew
chứa /usr/local/bin
./20-fish
chứa /usr/local/Cellar/fish/1.23.1/bin
./40-XQuartz
chứa /opt/X11/bin
Tôi nói thêm set +x
để tôi profile
và khi tôi bắt đầu terminal.app
tôi nhận được:
Last login: Mon Oct 1 13:31:06 on ttys000
+ '[' -x /usr/libexec/path_helper ']'
+ eval '/usr/libexec/path_helper -s'
++ /usr/libexec/path_helper -s PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/Cellar/fish/1.23.1/bin:/opt/X11/bin";
export PATH;
+ '[' /bin/bash '!=' no ']'
+ '[' -r /etc/bashrc ']'
+ . /etc/bashrc
++ '[' -z '\s-\v\$ ' ']'
++ PS1='\h:\W \u\$ '
++ shopt -s checkwinsize
++ '[' Apple_Terminal == Apple_Terminal ']'
++ '[' -z '' ']'
++ PROMPT_COMMAND='update_terminal_cwd; '
++ update_terminal_cwd
++ local 'SEARCH= '
++ local REPLACE=%20
++ local PWD_URL=file://Chriss-iMac.local/Users/c4
++ printf '\e]7;%s\a' file://Chriss-iMac.local/Users/c4
Chriss-iMac:~ c4$
Vì vậy, nó trông giống như path_helper chạy, nhưng sau đó chạy echo $PATH
lưới tôi /usr/bin:/bin:/usr/sbin:/sbin
. Vì vậy, có vẻ như path_helper
thậm chí không làm những gì nó phải làm nữa?
Tôi chắc chắn có một số hành vi được xác định rõ ở đây mà tôi không hiểu, hoặc tôi đã làm hỏng một cái gì đó trong khi cố gắng sửa nó. Xin vui lòng giúp đỡ!
fish
bằng cách tạo~/.config/fish/config.fish
vớiset PATH /usr/local/bin $PATH
nhưng tôi vẫn có vấn đềpath_helper
rõ ràng là không hoạt động như bình thường, và$PATH
do đó không đầy đủ. Cũng vẫn có vấn đề khác nhau$PATH
đối với các tập lệnh, ứng dụng bắt đầu từ GUI, v.v.