web-dev-qa-db-fra.com

ERREUR: lors de l'exécution d'une gemme ... (Gem :: FilePermissionError)

J'ai vérifié toutes les autres réponses similaires et aucune ne ressemblait à la mienne, aucune de ces solutions ne fonctionnait pour moi.

gem environment et Sudo gem environment donnent le même résultat:

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> donne 

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

alors que je suis capable d'installer le même via Sudo. Qu'est-ce que je fais mal?

METTRE À JOUR:

Selon les commentaires et ce post , j'ai couru après:

rvm implode et ensuite ré-installé la version stable .rvm install 1.9.3 ou toute autre installation de Ruby échoue avec

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:
:
:
:
20
Ava

Pour résoudre l'erreur: 

ERREUR: lors de l'exécution de gem ... (Gem :: FilePermissionError) Vous n'avez pas de permission d'écriture dans le répertoire /usr/local/lib/Ruby/gems/1.8.

la solution suivante a fonctionné pour moi:

Sudo gem install -n /usr/local/bin cocoapods
34
Amandeep Singh

Si vous avez installé rvm en tant qu'utilisateur root, vous devez alors Sudo pour installer quoi que ce soit.

Vous pouvez installer rvm en mode utilisateur en tant qu'utilisateur ordinaire. Dans ce cas, tout est stocké dans votre répertoire personnel et aucune variable Sudo n'est requise.

Si vous n'êtes pas engagé dans cette installation particulière, tapez Sudo rvm implode et recommencez.

23
tadman

Votre fichier de configuration global (à l'échelle du système) a probablement le drapeau --no-user-install . Créez/modifiez votre fichier ~/.gemrc local et ajoutez les lignes suivantes:

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

Remarque
Le répertoire réel de l’option gemdir varie en fonction de votre système ou de votre choix; cela peut être nécessaire ou non, mais il est probablement préférable de désigner le répertoire d'installation souhaité dans votre dossier home (gemdir) plutôt que de supposer qu'il sera pris en charge par lui-même.

Le ArchLinux Wiki contient des informations utiles/bien organisées à ce sujet.


chruby

De la même manière que la solution rvm déjà suggérée, vous pouvez essayer d’utiliser chruby pour maintenir, configurer et utiliser les versions locales de Ruby. Pour installer des versions supplémentaires de Ruby, vous devez utiliser 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

Du README du projet:

Change le Ruby actuel. Caractéristiques

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-caractéristiques

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.

Exigences

bash >= 3 or zsh
13
ILMostro_7

ERREUR: lors de l'exécution de gem ... (Gem :: FilePermissionError) Vous n'avez pas les autorisations d'écriture pour le répertoire /Library/Ruby/Gems/2.3.0.

Installez d’abord RVM puis définissez le dossier utilisateur gem dans votre fichier .zshrc ou .bashrc ou encore:

export GEM_HOME="$HOME/.gem"

Maintenant, gem i LIB mettra les pierres précieuses dans un endroit sûr.

11
dimpiax

en supposant que rvm soit installé, vous pouvez faire quelque chose comme: 

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

Pas besoin de faire Sudo.

3
Allan

Vous n’avez probablement pas d’autorisation d’écriture sur ce chemin (probablement/usr/local/lib), vous devez modifier l’emplacement de votre stockage RVM afin de ne pas nécessiter Sudo 

0
dannymc129

Sachez que si vous choisissez d'effectuer une installation multi-utilisateur de rvm, vous devez ajouter chaque utilisateur au groupe rvm via

usermod -a -G rvm <USERNAME>

Informations pertinentes provenant de rvm's FAQ

0
the_ogre