Каков окончательный способ установки/обновления/установки версии ZSH по умолчанию?
OSX Mountain Lion поставляется с ZSH 4.3.1 в /bin/zsh. После загрузки ./configure, make, make check,
и make install
-ing версии 5.0.0
which zsh
все еще возвращает /bin/zsh/
и zsh --version
все еще возвращает zsh 4.3.11 (i386-apple-darwin12.0)
Заметки, чтобы помочь ответчикам:
У меня не было ошибок при выполнении команд установки.
В /usr/local/bin
у меня есть эти 3 файла:
-rwxr-xr-x 2 kevinsuttle admin 622K Aug 20 00:59 zsh
-rwxr-xr-x 2 kevinsuttle admin 622K Aug 20 00:59 zsh-5.0.0
-rwxr-xr-x 1 kevinsuttle admin 622K Aug 20 00:50 zsh.old
Мой $PATH
$ echo $PATH
/Users/kevinsuttle/.rbenv/shims:/Users/kevinsuttle/.rbenv/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin
Вопросы, на которые мне нужно ответить:
1. Каков самый чистый способ установки ZSH? (Из git, homebrew, curl-ing source?)
2. Имеет ли значение, где вы запускаете команды установки?
3. Как обновить или переопределить версию ZSH, которая поставляется с Mountain Lion?
4. Это почему люди в конечном итоге используют oh-my-zsh?
Ответы
Ответ 1
Вы должны установить свою оболочку по умолчанию в OSX с помощью:
chsh -s /usr/local/bin/zsh $USER
Переключиться на OSX, и он должен работать!
Домашний путь
Я рекомендую вам использовать доморощенный. Это делает вещи намного проще.
Установите homebrew, как описано в http://mxcl.github.com/homebrew/.
Homebrew устанавливает ваши файлы в /usr/local/bin, поэтому убедитесь, что /usr/local/bin находится перед /usr/bin.
Добавьте следующую строку в ~/.zshrc и ~/.bashrc:
PATH="/usr/local/bin:/usr/local/sbin:$PATH"
Установить zsh:
brew install zsh
Установите оболочку по умолчанию в zsh:
chsh -s /usr/local/bin/zsh $USER
Наконец, установите разрешение на использование zsh из brew. Добавьте "/usr/local/bin/zsh" в файл "/etc/shells", чтобы разрешить zsh. Кроме того, вы получите сообщение об ошибке "У вас нет права запускать это приложение. Администратор установил для вашей оболочки недопустимое значение".
echo "/usr/local/bin/zsh" | sudo tee -a /etc/shells
Я рекомендую исправить ошибку окружения zsh в OSX. Переименуйте /etc/zshenv в/etc/zshrc
sudo mv /etc/{zshenv,zshrc}
Переключиться на OSX, и он должен работать!
Если у вас возникли проблемы, введите:
brew doctor
Ответ 2
Я попытаюсь ответить на ваши вопросы, но у меня есть ощущение, что это лучше подходит для superuser
Каков самый чистый способ установки ZSH? (Из git, homebrew, curl-ing source?)
Приобретение источника, как вы хотите; но самым чистым способом было бы создать частный bin
, мне нравится /Users/burhan/bin/
, и установить там вещи. Это, на мой взгляд, самый чистый и самый простой способ, поскольку вам не нужно полагаться на другие библиотеки/инсталляторы/волшебство.
Имеет ли значение, где вы запускаете команды установки?
Нет, неважно, какие аргументы вы даете командам - особенно целевое место установки и путь к библиотекам. Если вы не предоставите их (или установите их в среде перед началом работы), установщик поместит элементы в системные пути по умолчанию; и для этого вам нужно запустить установщик с повышенными правами, т.е. с помощью sudo
или во время входа в систему root
.
Как обновить или переопределить версию ZSH, которая поставляется с Mountain Lion?
Я бы рекомендовал не обновлять его; просто потому, что я не уверен, какие побочные эффекты у него будут на других сценариях, которые ожидают, чтобы он отправил рекламируемую версию. Для вашего здравомыслия я бы избегал этого.
Вместо этого, если вы создадите и установите его в отдельный ящик и соответствующим образом укажите свой PATH
; вы можете использовать обновленную версию без изменения поставляемой версии.
Ответ 3
ОК, поэтому комментарий Burhan напомнил мне о ситуации, когда я должен явно добавить путь к предпочтительной версии в мой .bash_profile
. Версия 5.0.0 находится в /usr/local/bin
, поэтому теперь $PATH
в моем .bash_profile
выглядит так:
export PATH="$HOME/.rbenv/bin:/usr/local/bin:$PATH"
и теперь, когда я запускаю which zsh
, я получаю /usr/local/bin/zsh
и zsh --version
возвращает zsh 5.0.0 (x86_64-apple-darwin12.0.0)
.
Woot! Надеюсь, это поможет кому-то, у кого такая же проблема.
Ответ 4
В прошлом решение, которое я разработал для этого типа обновления, было примерно следующим:
- Установите более новую версию где-нибудь (в моем случае по умолчанию для fink/sw/bin)
- Переименуйте версию, установленную ОС, в /bin/bin/zsh = > /bin/zsh.moved
- Настроить символическую ссылку в /bin для установки /sw/bin/zsh
Казалось, это сработало.
Что я хотел бы знать, так это то, является ли это решением немой, и если да, то почему?
Благодаря