Обновленная версия ZSH продолжает отображать устаревшую стоимость переменной $Shell: что делать?

Обновление Zsh на MacOS Catalina: Решение проблемы с оболочкой по умолчанию

Недавнее обновление Zsh с версии 5.7.1 до 5.9 может вызвать некоторые проблемы, особенно если у вас остались старые исполняемые файлы. В этой статье мы обсудим, как решить проблему, связанную с тем, что новая версия Zsh не отображается в переменной $SHELL, даже после обновления.

Зачем обновлять Zsh?

Обновление Zsh может быть вызвано необходимостью получения новых функций, улучшений производительности или исправлений безопасности. Найдите более свежие версии, такие как Zsh 5.9, чтобы обеспечить стабильную и безопасную работу вашей системы. Однако иногда после обновления могут возникнуть проблемы, такие как использование старой версии оболочки.

В чем проблема?

После обновления Zsh и изменения оболочки в свойствах терминала, многие пользователи замечают, что команда echo ZSH_VERSION показывает новую версию (5.9), но команда echo $SHELL все еще ссылается на старый путь. Это происходит из-за того, что новая версия Zsh не зарегистрирована как оболочка по умолчанию в системе.

Как исправить ситуацию?

Для решения этой проблемы выполните следующие шаги:

  1. Добавьте новый исполняемый файл Zsh в /etc/shells:
    Если /usr/local/bin/zsh не указан в этом файле, вам необходимо выполнить следующую команду:

    sudo sh -c 'echo /usr/local/bin/zsh >> /etc/shells'
  2. Измените оболочку по умолчанию для вашего пользователя:
    Введите следующую команду, чтобы сделать новую версию Zsh вашей оболочкой по умолчанию:

    chpass -s '/usr/local/bin/zsh' "$USER"
  3. Перезапустите терминал:
    Закройте и заново откройте приложение Терминал, чтобы изменения вступили в силу.

Причины возникновения проблемы

Эта проблема может возникнуть после установки Zsh через MacPorts или Homebrew, когда система не знает, что новые версии оболочки доступны. Если вы используете MacPorts, вам могут быть представлены аналогичные команды. Например, после установки Zsh через MacPorts, возможно, вам потребуется добавить его путь в /etc/shells и установить его как оболочку по умолчанию.

Пример успешного решения

Рассмотрим пример на MacOS Catalina 10.15.7. После установки Zsh от MacPorts, пользователи могли выполнить следующие команды:

sudo sh -c 'echo /opt/local/bin/zsh >> /etc/shells'
chpass -s '/opt/local/bin/zsh' "$USER"

После этого все новые окна терминала выдавали правильную версию оболочки:

dma@dmas-Mac ~ % zsh --version
zsh 5.9 (x86_64-apple-darwin19.6.0)
dma@dmas-Mac ~ % echo $ZSH_VERSION
5.9
dma@dmas-Mac ~ % echo $SHELL
/opt/local/bin/zsh

Заключение

Обновление Zsh — это важная задача, однако, изменения в оболочке по умолчанию могут привести к путанице, если не все пути зарегистрированы должным образом. Следуя описанным в этой статье шагам, вы сможете легко исправить ситуацию и наслаждаться всеми преимуществами новой версии Zsh. Не забывайте всегда проверять и обновлять системные конфигурации после установки новых приложений.

Источник

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *