0 votos

Cómo : convertir shell script escrito con ubuntu en mente a Apple mac

Nuevo aquí, ¡espero poder contribuir y obtener respuestas al mismo tiempo!

Mi pregunta es: ¿cuáles son una lista semi-exhaustiva de los cambios a realizar al convertir un shell script de ubuntu a Mac (desde un contexto de no poseer personalmente un mac)?

Para nuestros propósitos, el usuario final será un usuario de Mac 10.14 (MacOS Mojave).

Me preocuparé de la portación a versiones anteriores en otra pregunta.

En mi script uso, curl para buscar y tar para extraer, luego agrego una variable exportada a .bashrc resultando en un binario de java siendo "instalado" y ejecutable.

Ahora bien, en este caso concreto mi suposición es que las cosas irían bien si el script se ejecutara en Mac, pero dado que no sé nada de Mac, podría estar lamentablemente equivocado.

Pero creo recordar que tar y curl están preinstalados en mac.

y estoy casi seguro que mac también tiene un .bashrc

ahora sudo me doy cuenta de que es muy probable que no en mac, y sé que los paquetes comunes en mac no se instalan a través de la línea de comandos.

Así que convertirme haciendo sudo apt install steam es lo que preveo que será uno de los principales retos.

Este es mi proyecto favorito: https://github.com/tatsujb/installFAFscript

Esta es una versión del archivo que presenta sólo la versión de ubuntu del script (de ahí que sea más corto y fácil de ver : https://github.com/tatsujb/installFAFscript/blob/5d5ffec3c47aa05a09b02429e13b4532311a9d67/faf.sh )

Este script instala y configura un juego y su cliente thrid-party en una interacción híbrida de script env y env nativo.

Su primera respuesta podría ser que no puedo esperar traducir este script en absoluto ya que una o muchas partes del mismo pueden no funcionar en absoluto en Mac, pero resulta que sé de buena tinta que en realidad todas las partes funcionan en Mac y trabajan juntas : https://forums.faforever.com/viewtopic.php?f=2&t=16947

El usuario que hizo este post no dio una guía paso a paso para los no iniciados en Mac, simplemente apuntó a la guía de linux que había utilizado para mac como yo para ubuntu.

Supongo que debe haber calculado todas las equivalencias de Mac a partir de su conocimiento de Mac. (¡que yo no tengo!)

0voto

David Anderson Puntos 2189

En mi Mac, la salida de sw_vers y bash --version se muestra a continuación.

Marlin:char davidanderson$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.13.6
BuildVersion:   17G5019
Marlin:char davidanderson$ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)
Copyright (C) 2007 Free Software Foundation, Inc.

Tengo Ubuntu instalado en una máquina virtual VirtualBox. La salida de sw_vers y bash --version se muestra a continuación.

dma@dma-VirtualBox:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:    18.04
Codename:   bionic
dma@dma-VirtualBox:~$ bash --version
GNU bash, version 4.4.19(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Evidentemente, Apple no utilizará software con la nueva licencia GPLv3 y, por tanto, sigue utilizando la versión 3 de Bash en lugar de la versión 4. Así que, básicamente, sería más fácil conseguir que un script de Bash funcione en MacOS, y luego portarlo a Ubuntu.

Otra solución sería exigir al usuario que actualice Bash a la versión 4 en MacOS. Ha habido muchos posts aquí en Ask Different donde los usuarios han hecho esto y los problemas que han encontrado.

Esto no es sólo un problema de Bash. Gran parte del software gratuito que se incluye con MacOS está ya obsoleto. Los usuarios pueden actualizarlo manualmente, pero la molestia de tener que hacerlo hace que MacOS sea menos fácil de usar que antes.

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