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:
:
:
:
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
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.
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.
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
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.
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.
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
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