Estoy tratando de instalar Compass en una Mac Book Pro 2020 que ejecuta Big Sur (11.5.2).
Cuando intento ejecutar:
gem install compassme sale el error:
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directorySi intento ejecutar:
sudo gem install compassme sale el error:
ERROR: Error installing compass: ERROR: Failed to build gem native extension. current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.4/ext/ffi_cHe intentado instalar y actualizar Ruby. He intentado actualizar el sistema Ruby, pero el sistema no permite una versión más reciente que la siguiente:
Updating rubygems-update Fetching rubygems-update-3.3.3.gem Successfully installed rubygems-update-3.3.3 Parsing documentation for rubygems-update-3.3.3 Installing ri documentation for rubygems-update-3.3.3 Installing darkfish documentation for rubygems-update-3.3.3 Done installing documentation for rubygems-update after 206 seconds Parsing documentation for rubygems-update-3.3.3 Done installing documentation for rubygems-update after 0 seconds Installing RubyGems 3.3.3 ERROR: While executing gem ... (Errno::EPERM) Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/gem % ruby -v ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]No estoy seguro de qué hacer o probar a continuación.
¿Alguien tiene alguna idea sobre cómo instalar Compass?
Esto realmente se descompone en dos problemas, como notó con la llamada sudo .
(1) Está intentando escribir gemas en el directorio protegido de su sistema Ruby.
En la mayoría de los entornos de desarrollo, es mejor instalar un administrador de versiones de Ruby que le permita instalar varios Rubies en paralelo para diferentes proyectos. De manera puramente subjetiva, recomendaría rbenv para administrar solo Ruby, o asdf para administrar versiones de Ruby junto con versiones de otros idiomas. Sin embargo, la cuestión de qué administrador de versiones de Ruby usar ya está muy bien resuelta , por lo que puede elegir la solución que mejor se adapte a sus necesidades con la información existente.
(2) Está instalando una gema con extensiones nativas, lo que significa que necesita las bibliotecas C subyacentes instaladas en su sistema para compilar correctamente (suponiendo que esté usando CRuby, la implementación predeterminada de Ruby). Deberá instalar libffi-dev en su máquina para construir esa gema correctamente. Basado en esta pregunta , parece que una simple brew install libffi debería funcionar para eso.
Por último, sugeriré que es idiomático usar la bundler del paquete para administrar gemas por proyecto con Ruby. Reconsideraría si realmente desea ejecutar esta gema en todo el sistema, o si puede variar las versiones en varios proyectos.