Я новичок в OS X. Я использую OS X Lion на MacBook Pro. Безопасно ли обновлять оболочку bash с помощью Homebrew:
$ brew install bash
Если безопасно, как мне сделать его экземпляром оболочки по умолчанию, который я запускаю через терминал?
Спасибо!
Двоичные файлы /{,usr/}{,s}bin/
обычно не следует заменять другими файлами. Другие программы ожидают, что это будут версии, поставляемые с OS X, и они заменяются обновлениями ОС.
После запуска brew install bash
вы можете безопасно изменить оболочку по умолчанию:
/usr/local/bin/bash
к/etc/shells
chsh -s /usr/local/bin/bash
.Настройки в Терминале или iTerm 2 обычно не нужно менять. Оба они по умолчанию открывают новые окна с оболочкой входа в оболочку по умолчанию.
Оболочку по умолчанию также можно изменить в Системных настройках или с помощью dscl, но все три параметра просто изменяют файлы /var/db/dslocal/nodes/Default/users/$USER.plist
.
/etc/shells
, чтобы включить bash, установленный brew, требуется. В противном случае (по крайней мере, на моей машине) Терминал откажется запускаться.brew install bash
это сработало. (т.е. не нужно было изменять /etc/shells
)Я могу ошибаться здесь, но, насколько мне известно brew
, он установит свой собственный экземпляр bash
, поскольку brew работает под управлением /usr/local/bin
, а системные значения по умолчанию работают под /bin
(и /usr/bin
).
Что касается терминала, вы можете открывать оболочки с помощью собственной пользовательской команды. Перейдите в «Настройки»> «Запуск» и выберите « Оболочки, открытые с помощью: Command (полный путь) » . Просто набери путь к своему новому bash
и вуала!
Надеюсь, это поможет!
Кстати: Резервное копирование! Лучший совет в этой ситуации!
Прежде чем что-либо делать, сделайте резервную копию вашего текущего файла (конечно, но всегда стоит сказать об этом)
sudo cp /bin/bash /bin/bash.3.2.bk
Затем создайте символическую ссылку на исполняемый файл bash, загруженный Homebrew. Думаю, это будет в /usr/local/Cellar, вот так
sudo ln -s /usr/local/Cellar/bash/4.2.10/bin/bash /bin/bash
Теперь /bin/bash указывает на файл в вашем каталоге usr/local
Я думаю, что это безопасно, если вы просто запустите
brew install bash
а затем добавьте его в качестве оболочки по умолчанию
chsh -s /usr/local/bin/bash
поскольку вы только изменяете своего текущего пользователя. Однако я заметил, что мой ~/.profile по умолчанию
if [ "/bin/bash" == $BASH ]; then
source ~/.bashrc
fi
поэтому его необходимо обновить. я изменил его на
if [ "bash" == $(basename $BASH) ]; then
source ~/.bashrc
fi
chsh
одного недостаточно. Кроме того, ваш обновленный фрагмент .profile выглядит идентично исходному.brew install bash
бы не требовалось никаких дополнительных действий. С обновленным профилем, которым я поделился, это не так. Я надеюсь, что это может помочь другим.
экнепснаи
шркс