update rails mac instalar ruby macos gem osx-mountain-lion sudo

ruby - rails - ERROR: Al ejecutar gema...(Gem:: FilePermissionError)



install xcode mac terminal (7)

ERROR: Al ejecutar gema ... (Gem :: FilePermissionError) No tiene permisos de escritura para el directorio /Library/Ruby/Gems/2.3.0.

Primero instale RVM y luego configure la carpeta de gemas del usuario en su .zshrc o .bashrc o de lo contrario:

export GEM_HOME="$HOME/.gem"

Ahora gem i LIB pondrá gemas en un lugar seguro.

He comprobado todas las otras respuestas similares y ninguna fue exactamente como la mía, y ninguna de esas soluciones funcionó para mí.

gem environment y gem environment sudo gem environment dan el mismo resultado:

RubyGems Environment: - RUBYGEMS VERSION: 1.5.3 - RUBY VERSION: 1.8.7 (2011-12-28 patchlevel 357) [x86_64-linux] - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.8 - RUBY EXECUTABLE: /usr/local/bin/ruby - EXECUTABLE DIRECTORY: /usr/local/bin - RUBYGEMS PLATFORMS: - ruby - x86_64-linux - GEM PATHS: - /usr/local/lib/ruby/gems/1.8 - /home/ava/.gem/ruby/1.8 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - http://rubygems.org/

rvm -v : rvm 1.22.3

ruby -v : ruby 1.8.7

OSX 10.8.4

echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/ava/.rvm/bin:/home/ava/bin

gem install <gem-name> da

ERROR: While executing gem ... (Gem::FilePermissionError) You don''t have write permissions into the /usr/local/lib/ruby/gems/1.8 directory.

mientras que soy capaz de instalar el mismo a través de sudo. ¿Qué estoy haciendo mal?

ACTUALIZAR:

Según los comentarios y este post , corrí lo siguiente:

rvm implode y luego vuelve a instalar la versión estable. rvm install 1.9.3 o cualquier otra instalación de ruby ​​falla con

Error running ''__rvm_make -j24'', please read /home/ava/.rvm/log/log/1378418790_ruby-1.9.3-p194/make.log There has been an error while running make. Halting the installation.

make.log

[2013-09-05 22:06:48] make current path: /home/ava/.rvm/src/ruby-1.9.3-p194 command(2): make -j24 CC = gcc LD = ld LDSHARED = gcc -shared CFLAGS = -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Werror-implicit-function-declaration -fPIC XCFLAGS = -include ruby/config.h -include ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT CPPFLAGS = -I. -I.ext/include/x86_64-linux -I./include -I. DLDFLAGS = -Wl,-soname,libruby.so.1.9 SOLIBS = -lpthread -lrt -ldl -lcrypt -lm compiling main.c compiling dmydln.c compiling dmyencoding.c compiling version.c compiling miniprelude.c compiling array.c compiling bignum.c compiling class.c compiling compar.c compiling complex.c compiling dir.c compiling dln_find.c compiling enum.c compiling enumerator.c compiling error.c compiling eval.c compiling load.c compiling proc.c compiling file.c : : : In file included from ossl.h:213, from ossl_pkcs5.c:5: openssl_missing.h:71: error: conflicting types for ‘HMAC_CTX_copy’ /usr/local/include/openssl/hmac.h:102: error: previous declaration of ‘HMAC_CTX_copy’ was here openssl_missing.h:95: error: conflicting types for ‘EVP_CIPHER_CTX_copy’ /usr/local/include/openssl/evp.h:459: error: previous declaration of ‘EVP_CIPHER_CTX_copy’ was here make[2]: *** [ossl_pkcs5.o] Error 1 In file included from ossl.h:213, from ossl_x509req.c:11: : : :


Es probable que no tenga permisos de escritura en algún lugar a lo largo de esa ruta (probablemente / usr / local / lib), necesita cambiar la ubicación de su almacenamiento RVM para no necesitar sudo


Para resolver el error:

ERROR: Al ejecutar gema ... (Gem :: FilePermissionError) No tiene permisos de escritura en el directorio /usr/local/lib/ruby/gems/1.8.

La siguiente solución funcionó para mí:

sudo gem install -n /usr/local/bin cocoapods


Si ha instalado rvm como usuario root, entonces debe sudo para instalar cualquier cosa.

Puede instalar rvm en modo usuario como un usuario regular, en cuyo caso todo se almacena en su directorio de inicio y no se requiere sudo .

Si no está comprometido con esta instalación en particular, escriba sudo rvm implode y comience de nuevo.


Su archivo de configuración global (en todo el sistema) probablemente tenga el conjunto de indicadores --no-user-install . Cree / edite su archivo ~/.gemrc local y agregue las siguientes líneas:

:gemdir: - ~/.gem/ruby install: --user-install

Nota
El directorio real para la opción gemdir variará dependiendo de su sistema / deseo; puede o no puede ser necesario, pero probablemente es mejor designar el directorio de instalación deseado dentro de su carpeta de home ( gemdir ) que asumir que se cuidará solo.

El Wiki de ArchLinux tiene alguna información útil / bien organizada relacionada con esto.

chruby

Alternativamente, al igual que la solución rvm ya sugerida, puede intentar usar chruby para mantener, configurar y usar versiones locales de ruby . Para instalar versiones adicionales de ruby , sin embargo, necesitas usar ruby-install .

$ brew install chruby ruby-install $ ruby-install ruby 2.4.0 $ echo "source /usr/local/opt/chruby/share/chruby/chruby.sh" >> ~/.bash_profile $ echo "chruby ruby" >> ~/.bash_profile # Do this to select the default alternative ruby installation, assuming # there is no other version installed. $ chruby ruby ## Otherwise, list the available ruby versions installed, and select $ chruby ruby-2.3.0 ruby-2.4.0 $ chruby ruby-2.4.0

Desde el README del proyecto:

Cambia el actual ruby. Caracteristicas

Updates $PATH. Also adds RubyGems bin/ directories to $PATH. Correctly sets $GEM_HOME and $GEM_PATH. Users: gems are installed into ~/.gem/$ruby/$version. Root: gems are installed directly into /path/to/$ruby/$gemdir. Additionally sets $RUBY_ROOT, $RUBY_ENGINE, $RUBY_VERSION and $GEM_ROOT. Optionally sets $RUBYOPT if second argument is given. Calls hash -r to clear the command-lookup hash-table. Fuzzy matching of Rubies by name. Defaults to the system Ruby. Optionally supports auto-switching and the .ruby-version file. Supports bash and zsh. Small (~100 LOC). Has tests.

Anti-características

Does not hook cd. Does not install executable shims. Does not require Rubies be installed into your home directory. Does not automatically switch Rubies by default. Does not require write-access to the Ruby directory in order to install gems.

Requerimientos

bash >= 3 or zsh


Suponiendo que rvm está instalado, podría hacer algo como:

$ rvm install 2.1.1 $ rvm @global do gem install compass

No hay necesidad de hacer sudo.


Tenga en cuenta que si elige realizar una instalación multiusuario de rvm, debe agregar cada usuario al grupo de rvm a través de

usermod -a -G rvm <USERNAME>

Información relevante de las FAQ de rvm