Ich habe alle anderen ähnlichen Antworten geprüft und keine war genau wie meine, und auch keine dieser Lösungen funktionierte für mich.
gem environment
und Sudo gem environment
ergeben dasselbe Ergebnis:
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>
gibt
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /usr/local/lib/Ruby/gems/1.8 directory.
während ich in der Lage bin, dasselbe über Sudo zu installieren. Was mache ich falsch?
AKTUALISIEREN:
Wie in den Kommentaren und in diesem post bin ich folgendermassen gelaufen:
rvm implode
und dann die stabile Version .rvm install 1.9.3
erneut installiert oder eine andere Ruby-Installation schlägt fehl
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:
:
:
:
So beheben Sie den Fehler:
FEHLER: Beim Ausführen von gem ... (Gem :: FilePermissionError) Sie haben keine Schreibberechtigung für das Verzeichnis /usr/local/lib/Ruby/gems/1.8.
die folgende Lösung hat für mich funktioniert:
Sudo gem install -n /usr/local/bin cocoapods
Wenn Sie rvm
als Rootbenutzer installiert haben, müssen Sie Sudo
installieren, um etwas zu installieren.
Sie können rvm
im Benutzermodus als normaler Benutzer installieren. In diesem Fall wird alles in Ihrem Heimatverzeichnis gespeichert und es ist keine Sudo
erforderlich.
Wenn Sie nicht an diese bestimmte Installation gebunden sind, geben Sie Sudo rvm implode
ein und beginnen Sie von vorne.
Für Ihre Konfigurationsdatei global (systemweit) ist wahrscheinlich das Flag --no-user-install
gesetzt. Erstellen/bearbeiten Sie Ihre lokale ~/.gemrc
-Datei und hängen Sie folgende Zeile (n) an:
:gemdir:
- ~/.gem/Ruby
install: --user-install
Hinweis
Das tatsächliche Verzeichnis für die Option gemdir
hängt von Ihrem System/Ihren Wünschen ab. Dies kann erforderlich sein oder auch nicht, aber es ist wahrscheinlich besser, das gewünschte Installationsverzeichnis in Ihrem home
-Ordner (gemdir
) anzugeben, als davon auszugehen, dass es von alleine erledigt wird.
Das ArchLinux Wiki enthält einige nützliche/gut organisierte Informationen dazu.
Alternativ können Sie, ähnlich wie bei der bereits vorgeschlagenen Lösung rvm
, versuchen, mit chruby lokale Versionen von Ruby
zu verwalten, zu konfigurieren und zu verwenden. Um zusätzliche Versionen von Ruby
zu installieren, müssen Sie jedoch Ruby-install verwenden.
$ 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
Aus der README des Projekts:
Ändert den aktuellen Ruby. Eigenschaften
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-Funktionen
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.
Bedarf
bash >= 3 or zsh
FEHLER: Beim Ausführen von gem ... (Gem :: FilePermissionError) Sie haben keine Schreibberechtigung für das Verzeichnis /Library/Ruby/Gems/2.3.0.
Installieren Sie zuerst RVM und legen Sie anschließend den Benutzerordner "gem" in Ihrer .zshrc- oder .bashrc-Datei fest.
export GEM_HOME="$HOME/.gem"
Nun wird gem i LIB
die Edelsteine an einem sicheren Ort ablegen.
vorausgesetzt, dass rvm installiert ist, können Sie Folgendes tun:
$ rvm install 2.1.1
$ rvm @global do gem install compass
Keine Notwendigkeit, Sudo zu tun.
Sie haben wahrscheinlich keine Schreibberechtigung für irgendwo auf diesem Pfad (höchstwahrscheinlich/usr/local/lib). Sie müssen den Speicherort Ihres RVM-Speichers ändern, um Sudo nicht zu benötigen
Wenn Sie sich für eine Mehrbenutzerinstallation von rvm entscheiden, müssen Sie jeden Benutzer über die Gruppe rvm hinzufügen
usermod -a -G rvm <USERNAME>
Relevante Informationen von rvm FAQ