641 Stimmen

Wie installiert man ein Gem oder aktualisiert RubyGems, wenn es mit einem Berechtigungsfehler fehlschlägt?

Ich versuche, einen Edelstein zu installieren, indem ich gem install mygem oder aktualisieren Sie RubyGems mit gem update --system und schlägt mit dieser Fehlermeldung fehl:

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

Hat jemand eine Idee, wie man dieses Problem lösen kann?

3voto

Bomi Chen Punkte 75

A 2021 Lösung (mit rvm):

Wenn Sie eingeben which ruby im Terminal, und es zeigt /usr/bin/ruby können Sie diese Lösung ausprobieren.

  1. rvm installieren

    curl -L https://get.rvm.io | bash -s stable
  2. ruby mit rvm installieren

    rvm install "ruby-3.0.0"
  3. Ihre installierte Version von Ruby verwenden

    rvm use ruby-3.0.0
  4. Typ which ruby wieder, was dann zeigt /Users/mac_user_name/.rvm/rubies/ruby-3.0.0/bin/ruby .

    Es ist ein neuer Weg, Ruby zu verwenden.

1voto

Arunabh Das Punkte 12218

Wie bereits von bobbdelsol erwähnt, hat rehash bei mir funktioniert:

==> which ruby
/usr/bin/ruby

==> rbenv install 1.9.3-p551
Downloading ruby-1.9.3-p551.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p551.tar.bz2
Installing ruby-1.9.3-p551...
Installed ruby-1.9.3-p551 to /Users/username/.rbenv/versions/1.9.3-p551

==> which ruby
/Users/username/.rbenv/shims/ruby

==> which gem
/Users/username/.rbenv/shims/gem

==> gem install compass
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

==> ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]

==> rbenv global 1.9.3-p551

==> ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]

==> rbenv global 1.9.3-p551

==> rbenv rehash

==> ruby -v
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-darwin15.4.0]

==> gem install compass
Fetching: sass-3.4.22.gem (100%)
Fetching: multi_json-1.11.3.gem (100%)
Fetching: compass-core-1.0.3.gem (100%)
Fetching: compass-import-once-1.0.5.gem (100%)
Fetching: chunky_png-1.3.5.gem (100%)
Fetching: rb-fsevent-0.9.7.gem (100%)
Fetching: ffi-1.9.10.gem (100%)
Building native extensions.  This could take a while...
Fetching: rb-inotify-0.9.7.gem (100%)
Fetching: compass-1.0.3.gem (100%)
    Compass is charityware. If you love it, please donate on our behalf at http://umdf.org/compass Thanks!
Successfully installed sass-3.4.22
Successfully installed multi_json-1.11.3
Successfully installed compass-core-1.0.3
Successfully installed compass-import-once-1.0.5
Successfully installed chunky_png-1.3.5
Successfully installed rb-fsevent-0.9.7
Successfully installed ffi-1.9.10
Successfully installed rb-inotify-0.9.7
Successfully installed compass-1.0.3
9 gems installed
Installing ri documentation for sass-3.4.22...
Installing ri documentation for multi_json-1.11.3...
Installing ri documentation for compass-core-1.0.3...
Installing ri documentation for compass-import-once-1.0.5...
Installing ri documentation for chunky_png-1.3.5...
Installing ri documentation for rb-fsevent-0.9.7...
Installing ri documentation for ffi-1.9.10...
Installing ri documentation for rb-inotify-0.9.7...
Installing ri documentation for compass-1.0.3...
Installing RDoc documentation for sass-3.4.22...
Installing RDoc documentation for multi_json-1.11.3...
Installing RDoc documentation for compass-core-1.0.3...
Installing RDoc documentation for compass-import-once-1.0.5...
Installing RDoc documentation for chunky_png-1.3.5...
Installing RDoc documentation for rb-fsevent-0.9.7...
Installing RDoc documentation for ffi-1.9.10...
Installing RDoc documentation for rb-inotify-0.9.7...
Installing RDoc documentation for compass-1.0.3...

1voto

Marcelo Gumiero Punkte 1811

Getestet auf MacOS Mojave MIT ERFOLG:

  1. Deinstallieren Sie alle Ihre alten Ruby-Versionen (sagen wir, Sie haben 2.00 und 2.3.0):

    $ rvm uninstall 2.0.0

    $ rvm uninstall 2.3.0

  2. Installieren Sie eine brandneue Ruby-Version:

    $ brew install ruby

  3. Legen Sie einen Standard-Alias für Ihre Version fest:

    $ rvm alias create default ruby

  4. Starten Sie Ihr System neu, denn dies ist der sicherste Weg, wie Ihr Computer die neue Ruby-Version lädt, die kürzlich installiert wurde.

NACH dem obigen Verfahren können Sie erfolgreich jede gem Befehl.

0voto

allthesignals Punkte 307

Das Problem bei mir war, dass ich vorhin von zshell auf bash umgestiegen bin und nicht eingeloggt war:

/bin/bash --login

Obwohl ich rvm installiert hatte, war es nicht in der Lage, zu meiner neu installierten Ruby-Version zu wechseln und versuchte immer noch, das standardmäßig auf dem Mac installierte Ruby-Binary zu verwenden. Daher meine Verwirrung (Benutzerfehler!!!) und die anhaltenden Probleme mit den Berechtigungen...

0voto

Koray Güclü Punkte 2759

Sie können ändern GEM_HOME . Sie haben auch unter Ihrem Home-Verzeichnis ein gem-Ordner, um es zu überprüfen verwenden

$ gem env

ist das Ergebnis wie folgt. Unzusammenhängende Teile werden weggelassen.

...
  - GEM PATHS:
     - /Users/xxx/.gem/ruby/2.6.0
     - /Library/Ruby/Gems/2.6.0
     - /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0
...

Sie können Ihre /Users/xxx/.gem/ruby/2.6.0 Ordner.

vim ~/.bash_profile

die folgende Zeile hinzufügen

export GEM_HOME=~/.gem/ruby/2.6.0/

Danach können Sie mit

source ~/.bash_profile

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X