Instalación de MacOS: Gem::FilePermissionError

Al instalar Discourse (para desarrollo) en mi Mac, obtengo este error:

ERROR:  While executing gem ... (Gem::FilePermissionError)
    No tienes permisos de escritura para el directorio /Library/Ruby/Gems/2.6.0.

¿Cómo puedo resolverlo?
Gracias.

1 me gusta

¿Ya ejecutaste la instalación del script de Discourse aquí?

¿Estás usando macOS Catalina? Si es así, parece que Discourse está intentando usar la versión de Ruby del sistema. Lo ideal es usar algo como rbenv para configurar tu versión de Ruby y evitar esto.

1 me gusta

Estoy ejecutando MacOS Catalina. Y sí ejecuté ese script, pero falló a mitad de camino porque creo que ya estaba instalado.

¿Puedes pegar la salida de which rbenv?

¿Y tienes un archivo .bashrc o .zshrc personalizado?

1 me gusta

/usr/local/bin/rbenv

No estoy muy seguro. Creo que no, pero quizás.

¿Puedes ejecutar cd en tu directorio de Discourse y compartir la salida de which ruby?

1 me gusta

¡Ups, no me di cuenta. Lo hice y obtuve /usr/bin/ruby

Vale, estás usando el Ruby del sistema para Discourse, por eso tienes ese problema.

Comprueba la variable PATH escribiendo echo $PATH. Deberías ver /Users/<tu usuario>/.rbenv/bin y /Users/<tu usuario>/.rbenv/shims listados ahí.

Si no aparecen, añádelos en el archivo de configuración de tu shell .bashrc o .zshrc. Para ZSH puedes añadirlo así: export PATH=/ruta/numero/1:/ruta/numero/2:$PATH

Si los ves, comprueba en qué orden están. Si aparecen más adelante en la cadena, probablemente no se carguen antes que el Ruby del sistema, lo que significa que Discourse está usando el Ruby del sistema. Puedes usar el mismo enfoque anterior para mover las rutas más arriba en la cadena.

3 Me gusta

Pensé que @david había añadido una verificación de la versión de Ruby a nuestra configuración del entorno de desarrollo. :thinking:

Creo que eso era para la CLI del tema.

2 Me gusta

¿Hay alguna forma de agregar una verificación equivalente aquí?

Creo que ya verificamos la compatibilidad de versiones de Ruby en Discourse. El problema aquí es que nuestro paquete de Discourse no puede escribir gemas para la versión del sistema de Ruby incluida con macOS. Podría estar equivocado en los detalles específicos, pero creo que tiene que ver con un cambio que Apple realizó con macOS Catalina. Yo mismo encontré este mismo problema y requirió bastante solución de problemas para resolverlo.

1 me gusta
  1. Me encontré con el mismo error que el OP.

  2. Lee esto:

  1. Pensé que en realidad no era un error de permisos de archivo, sino que el instalador estaba mirando en el lugar equivocado.

  2. Sabía que reiniciar el terminal recargaría mi archivo .zshrc, así que cerré y abrí el terminal.

  3. Volví a ejecutar el script de instalación y ya no me encontré con este error.

¿Podría resolverse este problema con una actualización del terminal estratégicamente colocada durante el proceso de instalación? :thinking: