6 votos

¿Hay alguna desventaja en utilizar la versión brew de bash para /bin/sh?

He parcheado bash & sh con los últimos parches como se describe aquí pero ahora tengo algunos problemas con algunas cosas en mis dotfiles (particularmente la carga de rvm y algunas funciones y terminaciones personalizadas).

No tengo los problemas si sólo uso la versión brew de bash como ambos /bin/bash y /bin/sh Pero me pregunto si podría tener otros problemas con el sistema.

5voto

shsteimer Puntos 8749

Aconsejaría no hacer la instalación Homebrew de bash en todo el sistema bash o sh de mando. Sin embargo, debería estar bien para usar como su shell personal.

Homebrew proporciona una instalación de Gnu Bash . Se perderá cualquier adición de Apple a la cáscara que se proporciona si se utiliza el Apple-suministrado bash o sh binarios o el código fuente del sitio web de Apple sitio opensource.apple.com . Cualquier shell a nivel de SO script proporcionado por Apple puede depender de esas extensiones y cambios de Apple para funcionar.

Homebrew también instala, por defecto, una versión 4.3.x de bash:

> brew info bash
bash: stable 4.3.24 (bottled), HEAD
http://www.gnu.org/software/bash/
Not installed
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/bash.rb
==> Dependencies
Required: readline ✘
==> Caveats
In order to use this build of bash as your login shell,
it must be added to /etc/shells.

Esta es una versión significativamente diferente a la versión 3.2.x que se incluye en OS X 10.9.x. No es 100% compatible con las versiones anteriores a la 4. Por ejemplo extracción de subcadenas en la indexación de parámetros posicionales cambió de 3 a 4. Podría romper los scripts scripts.

Ambas razones pueden llevar a que el sistema scripts no funcionen en tu Mac si cambias a las versiones de Homebrew de bash y sh para otra cosa que no sea su caparazón personal. Puedes hacer que tu shell personal sea el Homebrew bash shell ejecutando:

chsh -s /usr/local/bin/bash

y luego cerrar la sesión y volver a iniciarla. Esto debería ser relativamente seguro para el funcionamiento estable de su máquina.

Si lo anterior chsh El comando falla diciendo /usr/local/bin/bash no es un caparazón aceptable, tendrá que añadirlo a la lista en /etc/shells corriendo:

sudo vim /etc/shells

Debe añadirse en una nueva línea del archivo, de la siguiente manera

> cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/zsh
/usr/local/bin/bash

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X