Подтвердить что ты не робот

Каков окончательный способ установки/обновления/установки версии 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?

4b9b3361

Ответ 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

Казалось, это сработало.

Что я хотел бы знать, так это то, является ли это решением немой, и если да, то почему? Благодаря