3 votos

Cómo actualizar los programas de shell

¿Cómo puedo actualizar los programas de shell como crontab , por ejemplo? En mi Mac tengo la versión del 29 de diciembre de 1993, pero en un servidor linux de la máquina que estoy usando la versión de crontab es mucho mejor en términos de usabilidad, ya que es desde el 19 de abril de 2010.

Estoy corriendo MacOS Mojave y mi bash versión es : GNU bash, version 5.0.2(1)-release (x86_64-apple-darwin18.2.0)

crontab en mi Mac: Mac crontab en mi Linux: Linux

3voto

El contenido de /usr/bin y amigos se actualiza con cada versión de macOS, pero por lo general las versiones suministradas por Apple son mucho mayores que lo que está disponible en Linux. Hay varias razones para esto, en muchos de los casos está relacionado a los cambios en la GPL. En caso de crontab puede también jugar un papel en que el uso de cron está en desuso, launchd debe ser utilizado en su lugar.

Si desea actualizar los binarios Unix ti mismo

  • El uso de Homebrew (https://brew.sh)
  • Compilar desde el código fuente sí mismo y a instalar en /usr/local/bin

1voto

Christopher Puntos 131

Donde está el ejecutable?

command -v cron

El resultado muestra /usr/sbin/cron. La Integridad del sistema de Protección (SIP) protege el contenido de /usr; por lo tanto, no puede afectar un cambio de todos modos mientras el SIP está habilitado. Instaló BASH a través de Homebrew, me la tome. La búsqueda de Homebrew para cron relacionadas con fórmulas o barricas revela que no hay candidatos (brew search cron), tal vez por razones dadas por @nohillside. Quizás cron era un mal ejemplo y una mejor ejemplo podría ser el de vim. Como usted ha descubierto, uno puede utilizar un gestor de paquetes como Homebrew o Macports para instalar más recientes de software. Para cada paquete instalado, Homebrew, al menos, se instala un enlace simbólico a dondequiera que el ejecutable se ha instalado (/usr/local/Cellar/[...]); por lo tanto, se podría utilizar un alias de shell o modificar el PATH variable de entorno para aprovechar mejor las versiones de software común. Yo uso el alias de shell enfoque.

Por ejemplo, mi concha es zsh, y he instalado MacVim. Si el enlace simbólico para MacVim la versión de vim existe (-h), a continuación, defina un nuevo alias. Ahora, cada vez que ejecute vim, yo no soy la ejecución de la vim encuentra en /usr/bin; por el contrario, yo soy la ejecución de la vim encuentra en /usr/local/bin. La siguiente prueba de la definición y funciona de la misma para bash.

[ -h '/usr/local/bin/vim'  ] && alias vim='/usr/local/bin/vim'
[ -h '/usr/local/bin/view' ] && alias view='/usr/local/bin/view'

Y, a continuación, utilizar el gestor de paquetes para actualizar el software de forma periódica.

if brew update 2>/dev/null; then
    brew upgrade
    brew cleanup
    rm -rf "$(brew --cache)"
fi

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