¿Hay alguna desventaja al usar la versión de preparación de bash para / bin / sh?

6

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

No tengo problemas si solo uso la versión de brew de bash como /bin/bash y /bin/sh , pero me pregunto si podría encontrar otros problemas con el sistema.

    
pregunta Michael Johnston 29.09.2014 - 01:29

1 respuesta

5

No recomendaría que la instalación de Homebrew de bash sea el comando bash o sh de todo el sistema. Sin embargo, debería estar bien para usar como tu shell personal.

Homebrew proporciona una instalación de vainilla de Gnu Bash . Le faltarán las adiciones de Apple al shell que se proporcionan si utiliza los binarios bash o sh suministrados por Apple o el código fuente de sitio opensource.apple.com . Cualquier script de shell a nivel de sistema operativo proporcionado por Apple puede depender de la extensión de Apple y de los cambios en la función.

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 de la versión 3.2.x que viene con OS X 10.9.x. No es 100% compatible con versiones anteriores. Por ejemplo, extracción de subcadenas en la indexación de parámetros posicionales cambió de 3 a 4. Podría romper el nivel del sistema scripts.

Ambas razones pueden llevar a scripts de sistema inoperables en tu Mac si cambias a las versiones de Homebrew de bash y sh para cualquier otra cosa que no sea tu shell personal. Puede hacer que su shell personal sea Homebrew bash shell ejecutando:

chsh -s /usr/local/bin/bash

y luego cierre sesión y vuelva a iniciar sesión. Esto debería ser relativamente seguro para el funcionamiento estable de su máquina.

Si el comando chsh falla y dice que /usr/local/bin/bash no es un shell aceptable, deberá agregarlo a la lista en /etc/shells ejecutando:

sudo vim /etc/shells

Se debe agregar en una nueva línea en el archivo, de esta forma:

> 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
    
respondido por el Ian C. 29.09.2014 - 03:09

Lea otras preguntas en las etiquetas