Добре, вибачте, якщо це щось німе, але у мене не вистачає ідей.
Мета: випереджати /usr/local/binв$PATH
Проблема: $PATH не буде робити те, що я хочу або очікую
Як я потрапив сюди: я хочу почати вчитися програмувати, тому мені стає зручно возитися під капотом, але не маю багато досвіду. Я встановив fishоболонку (бо це дружньо!) За допомогою homebrewта встановив її як свою оболонку за замовчуванням (під system prefs>users & groups>advanced). У якийсь момент я побіг brew doctorпобачити, чи всі мої інсталяції кошерні, і це запропонувало мені перейти /usr/local/binна передню частину, $PATHщоб я міг використовувати інсталяцію, gitа не копію системи. Чудово - але між, path_helperі fishщось сталося, $PATHщо було поза моїм контролем, і я ніколи не міг домогтися правильного впорядкованого шляху.
Навколишнє середовище: OSX 10.8.2, підвищений з 10.7ish, з xcodeі встановлений DevTools, плюс x11, homebrewіfish
Більш детальна інформація: Я налаштував мої оболонки користувача по замовчуванням назад в bash, і спробував різні снаряди через terminal.app- bash, fish, sh. Я перемістився /usr/local/binна вершину, /etc/pathsале це нічого не змінило. Я переглянув різні config.fishфайли і прокоментував речі, які можуть зіпсуватись з $ PATH, не допомогло. У мене є такі файли /etc/paths.d/:
./10-homebrew що містять /usr/local/bin
./20-fish що містять /usr/local/Cellar/fish/1.23.1/bin
./40-XQuartz що містять /opt/X11/bin
Я додав set +xдо свого profileі коли починаю terminal.appотримувати:
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$
Так виглядає, що біг path_helper біжить, але потім echo $PATHмене працює мережа /usr/bin:/bin:/usr/sbin:/sbin. Отже, схоже, path_helperце навіть не робить того, що належить?
Я впевнений, що тут є якась чітко визначена поведінка, яку я не розумію, або я щось зламався, намагаючись виправити це. Будь ласка, допоможіть!
fish, створюючи~/.config/fish/config.fishз ,set PATH /usr/local/bin $PATHале я до сих пір питання , по-path_helperвидимому , не працює , як і повинно бути, і ,$PATHтаким чином , бути неповним. Також ще є випуск різних$PATHдля сценаріїв, програм, запущених із графічного інтерфейсу тощо.