it-swarm.com.de

FEHLER: Beim Ausführen von gem ... (Gem :: FilePermissionError)

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

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
34
Amandeep Singh

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.

23
tadman

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.


chruby

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
13
ILMostro_7

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.

11
dimpiax

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.

3
Allan

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 

0
dannymc129

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

0
the_ogre