Problema al instalar Ruby 2.2.9 en Mac Big Sur M1

Intenté instalar Ruby 2.2.9 en el chipset Big Sur - M1.

Traté de usar RVM, ASDF... pero siempre me equivoco durante la compilación:

encoding.c:825:2: error: implicit declaration of function 'rb_str_change_terminator_length' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    rb_str_change_terminator_length(obj, oldtermlen, termlen);

Pregunta hecha hace 3 años, 5 meses, 1 días - Por debugdynamob312


3 Respuestas:

  • Bueno, la respuesta sería prueba y error al probar versiones antiguas de herramientas de línea de comandos ya que es BigSur Yo no ahora el soporte más antiguo, de lo contrario puede rebajar a Catalina y utilizar herramientas de línea de comandos 11.4.1. El problema es que las versiones anteriores de rubí no compilan debido a algunos errores de clang que tienen que ver con el compilador en uso en el momento (respondió esto en un post). Una última mención muy importante es usar RBENV si es compatible con macs M1. Respondí una pregunta similar pero con Catalina. Si ayuda.

    También puede intentar configurar esta bandera para ignorar los errores (antes del proceso de instalación):

    export optflags="-Wno-error=implicit-function-declaration"
    

    Un compañero de trabajo encontró esta solución (él está ejecutando un macbook 16 pulgadas con Big Sur)

    Respondida el Dec 16, 2020 a las 14:31 - por devdoodle

    Votos positivos: 0 | Votos negativos: 0

  • El mensaje de error que estás viendo parece estar relacionado con una incompatibilidad entre el código de Ruby 2.2.9 y las configuraciones de compilación en tu sistema macOS Big Sur con chip M1.

    Dado que Ruby 2.2.9 es una versión antigua de Ruby y puede que no sea totalmente compatible con los cambios en los sistemas operativos más recientes y en las arquitecturas de chip M1, te recomendaría considerar actualizar a una versión más reciente de Ruby como 2.7.x o 3.x, que tiene mejor soporte para las nuevas plataformas y características.

    Aquí te dejo algunos pasos que podrías seguir para intentar instalar una versión más nueva de Ruby en tu sistema:

    • Utiliza un gestor de versiones de Ruby como rbenv o RVM para instalar y gestionar múltiples versiones de Ruby de forma sencilla. Puedes instalar rbenv siguiendo las instrucciones en su repositorio en GitHub: https://github.com/rbenv/rbenv

    • Antes de instalar una nueva versión de Ruby, asegúrate de tener las dependencias necesarias instaladas en tu sistema. Puedes instalarlas utilizando Homebrew con el siguiente comando en la terminal:
    bash
       brew install openssl libyaml libffi
       

    • Una vez que hayas instalado las dependencias, puedes instalar una nueva versión de Ruby utilizando rbenv:
    bash
       rbenv install 3.0.2
       

    • Establece la nueva versión de Ruby como la versión por defecto:
    bash
       rbenv global 3.0.2
       

    Con estos pasos, podrías intentar instalar una versión más reciente de Ruby que sea compatible con tu sistema macOS Big Sur con chip M1. Si sigues teniendo problemas, te recomiendo buscar en la documentación oficial de rbenv, RVM u otros gestores de versiones de Ruby para encontrar soluciones específicas para la arquitectura M1 y Big Sur.

    Respondida el Dec 17, 2020 a las 14:32 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Solución:

    Este error ocurre debido a una incompatibilidad entre Ruby 2.2.9 y el compilador de Apple Clang utilizado en macOS Big Sur.

    Para resolver este problema, puedes utilizar Homebrew, un administrador de paquetes para macOS, para instalar una versión compatible de Ruby.

    Pasos:

    • Instala Homebrew si aún no lo tienes:
    
       /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
       

    • Utiliza Homebrew para instalar Ruby 2.2.9:
    
       brew install [email protected]
       

    • Establece Ruby 2.2.9 como la versión predeterminada:
    
       brew link --overwrite [email protected]
       

    • Verifica que Ruby 2.2.9 esté instalado correctamente:
    
       ruby -v
       

    Deberías ver la versión 2.2.9 como resultado.

    Nota:

    Es posible que necesites desinstalar cualquier versión anterior de Ruby que tengas instalada antes de seguir estos pasos. También puedes utilizar otros administradores de paquetes como MacPorts o Fink, pero Homebrew es generalmente el más recomendado para macOS.

    Respondida el Dec 17, 2020 a las 14:42 - por Gemini

    Votos positivos: 0 | Votos negativos: 0