No tienes permisos de escritura para el directorio /Library/Ruby/Gems/2.3.0. (usuario de mac)

Resuelto user9426236 asked hace 6 años • 0 respuestas

A continuación se muestra lo que necesito hacer.

Para ejecutar las especificaciones, necesitará instalar RSpec. Primero, ejecútelo gem install bundleren el directorio raíz de su proyecto. Entonces corre bundle install. Para ejecutar un único archivo de especificaciones, ejecute un comando como este: bundle exec rspec spec/00_hello_spec.rb. Para ejecutar todas las especificaciones a la vez, ejecute bundle exec rspec.

Entonces, escribí gem install bundlerTerminal y recibí el error:

No tienes permisos de escritura para el directorio /Library/Ruby/Gems/2.3.0.

y esto estaba en el archivo del proyecto en atom

source "https://rubygems.org"
gem "rspec", "~> 3.2.0"

Mi pregunta es:

Parece que la terminal me está dando la respuesta porque se supone que no debo cambiar nada en Ruby, ¿y necesito hacerlo bundle installdentro del átomo? ¿Alguien podría decirme cómo usar atom o ejecutar algo en atom?

user9426236 avatar Jul 02 '18 02:07 user9426236
Aceptado

Tienes razón en que macOS no te permitirá cambiar nada con la versión de Ruby que viene instalada con tu Mac. Sin embargo, es posible instalar gemas bundlerusando una versión separada de Ruby que no interfiere con la proporcionada por Apple.

Se desaconseja encarecidamente su uso sudopara instalar gemas o cambiar los permisos de los archivos y directorios del sistema, incluso si sabe lo que está haciendo. ¿Podemos dejar de dar este mal consejo?

La solución implica dos pasos principales:

  1. Instale una versión separada de Ruby que no interfiera con la que vino con su Mac.
  2. Actualice PATHde modo que la ubicación de la nueva versión de Ruby esté primero en el archivo PATH. Algunas herramientas hacen esto automáticamente por usted. Si no está familiarizado con su funcionamiento PATHy cómo funciona, es uno de los conceptos básicos que debe aprender y comprenderá por qué a veces aparecen errores de "comando no encontrado" y cómo solucionarlos.

Primero, querrás instalar Homebrew , que instala las herramientas de línea de comandos necesarias y facilita la instalación de otras herramientas necesarias.

Entonces, las dos formas más sencillas de instalar una versión independiente de Ruby son:

Si desea tener la flexibilidad de cambiar fácilmente entre muchas versiones de Ruby [RECOMENDADO]

Elija una de estas cuatro opciones:

  • chruby y ruby-install . Estos se pueden instalar con Homebrew:
brew install chruby ruby-install
  • rbenv - se puede instalar con Homebrew

  • RVM

  • asdf

Si elige chrubyy ruby-install, puede instalar la última versión de Ruby de esta manera:

ruby-install ruby

Una vez que haya instalado todo y configurado .zshrcsegún .bash_profilelas instrucciones de las herramientas anteriores, cierre y reinicie Terminal, luego cambie a la versión de Ruby que desee. En el caso de chruby, sería algo como esto:

chruby 3.1.3

Si necesita configurar .zshrco .bash_profiledepende del shell que esté utilizando.

Si estás seguro de que no necesitas más de una versión de Ruby al mismo tiempo (aparte de la que viene con macOS) [NO RECOMENDADO]

Incluso si cree que no necesitará otra versión ahora, eventualmente la necesitará y no podrá cambiar fácilmente. Esto causará confusión y dolores de cabeza, por lo que no recomiendo instalar y administrar Ruby con Homebrew.

Si elige utilizar Homebrew para instalar Ruby a pesar de mis advertencias, estará solo si tiene algún problema.

  • Instale Ruby con Homebrew:
brew install ruby

Luego actualice su PATHejecutando este comando:

echo 'export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/3.1.0/bin:$PATH"' >> ~/.zshrc

El 3.1.0comando anterior supone que Homebrew instaló una versión de Ruby que comienza con 3.1. Si instaló una versión diferente, reemplácela 3.1con los primeros dos dígitos de su versión de Ruby.

Si estás en una Mac M1/M2, reemplázala /usr/localcon/opt/homebrew

Luego "actualiza" tu shell para que estos cambios surtan efecto:

source ~/.zshrc

O puede abrir una nueva pestaña de terminal o salir y reiniciar Terminal.

Reemplace .zshrccon .bash_profilesi está usando Bash. Si no estás seguro, lee mi guía para saber qué shell estás usando.

Para verificar que ahora estás usando la versión de Ruby que no es del sistema, puedes ejecutar los siguientes comandos:

which ruby

no debería ser/usr/bin/ruby

ruby -v

Debería ser 3.1.3 o posterior.

Una vez que tengas instalada esta nueva versión de Ruby, ahora puedes instalar el paquete (o cualquier otra joya):

gem install bundler
monfresh avatar Feb 25 '2019 20:02 monfresh

Funcionó para mí usando el parámetro --user-installejecutando el siguiente comando:

gem install name_of_gem --user-install

Instalar en el directorio de inicio del usuario en lugar deGEM_HOME

https://guides.rubygems.org/command-reference/#gem-install

El repositorio local predeterminado de RubyGems se puede anular con las variables de entorno GEM_PATH y GEM_HOME. GEM_HOME establece el repositorio predeterminado para instalar. GEM_PATH permite buscar gemas en varios repositorios locales.

Editar

Había una gema que todavía no podía instalar (requería los encabezados Ruby.h del kit de desarrollo Ruby o algo así), luego probé los diferentes administradores de versiones, pero de alguna manera eso todavía no funcionó, como se indica en la documentación cómo simplemente instalar y cambiar (simplemente no cambió las versiones). Luego eliminé todos los administradores de versiones instalados y luego los instalé con brew install rubyla última versión y también configuré la variable PATH. (Se mencionará después de la instalación de Ruby de Brew), que funcionó.

Stefan Rein avatar Nov 15 '2019 13:11 Stefan Rein

Si no desea ejecutar sudo, instale Ruby usando Homebrew.

brew install ruby
export GEM_HOME="$HOME/.gem"
gem install rails

Es posible que quieras agregar export GEM_HOME="$HOME/.gem"a tu ~/.bash_profileo .zshrcsi estás usando zsh

Nota: RubyGems mantiene versiones antiguas de gemas, así que siéntete libre de hacer una limpieza después de actualizar:

gem cleanup
STIKO avatar Dec 27 '2018 19:12 STIKO

Simplemente exporte GEM_HOME:

export GEM_HOME="$HOME/.gem"

Y luego prueba:

gem install cocoapods
Muhammad Naeem Paracha avatar Jul 01 '2021 10:07 Muhammad Naeem Paracha