Soy nuevo en OS X. Estoy ejecutando OS X Lion en una MacBook Pro. ¿Es seguro actualizar bash shell usando Homebrew?
$ brew install bash
Si es seguro, ¿cómo lo convierto en la instancia predeterminada del shell que ejecuto a través de la Terminal?
¡Gracias!
Los archivos binarios en /{,usr/}{,s}bin/
normalmente no deben reemplazarse con otros archivos. Otros programas esperan que sean las versiones que venían con OS X y son reemplazadas por actualizaciones del sistema operativo.
Después de ejecutar brew install bash
, puede cambiar el shell predeterminado de forma segura:
/usr/local/bin/bash
a/etc/shells
chsh -s /usr/local/bin/bash
_La configuración en Terminal o iTerm 2 normalmente no tiene que cambiarse. Ambos por defecto abren nuevas ventanas con un shell de inicio de sesión del shell predeterminado.
El shell predeterminado también se puede cambiar desde Preferencias del sistema o con dscl, pero las tres opciones solo se modifican /var/db/dslocal/nodes/Default/users/$USER.plist
.
/etc/shells
para incluir el bash instalado en brew. De lo contrario (al menos en mi máquina), la Terminal se negará a iniciarse.brew install bash
para que esto funcionara. (es decir, no tuvo que modificar /etc/shells
)Podría estar equivocado aquí, pero hasta donde yo sé brew
, instalaría su propia instancia de bash
, ya que brew funciona bajo /usr/local/bin
mientras que los valores predeterminados del sistema funcionan bajo /bin
(y /usr/bin
).
Acerca de Terminal, puede hacer que los shells se abran con su propio comando personalizado. Vaya a Preferencias > Inicio y seleccione Shells abiertos con: Comando (ruta completa) . ¡ Simplemente escriba la ruta a su nuevo bash
y vuala!
¡Espero eso ayude!
Por cierto: ¡Copia de seguridad! ¡El mejor consejo en estas situaciones!
Bueno, antes de hacer nada, haga una copia de seguridad de su archivo actual (por supuesto, pero siempre merece ser dicho)
sudo cp /bin/bash /bin/bash.3.2.bk
Luego cree un enlace simbólico al ejecutable bash que descargó Homebrew. Creo que estará en /usr/local/Cellar, así
sudo ln -s /usr/local/Cellar/bash/4.2.10/bin/bash /bin/bash
Ahora /bin/bash apunta al archivo en su directorio usr/local
Creo que es seguro si solo lanzas
brew install bash
y luego agréguelo como su shell predeterminado
chsh -s /usr/local/bin/bash
ya que solo está modificando su usuario actual. Sin embargo, noté que mi ~/.profile predeterminado es
if [ "/bin/bash" == $BASH ]; then
source ~/.bashrc
fi
por lo que necesita ser actualizado. lo cambié a
if [ "bash" == $(basename $BASH) ]; then
source ~/.bashrc
fi
chsh
solo no es suficiente. También si su fragmento de .profile actualizado se ve idéntico al originalbrew install bash
no requiriera ninguna otra acción. Con el perfil actualizado que compartí, no lo hace. Espero que esto pueda ayudar a otros.
ecnepsnai
shrx