Ruby RubyGems: Warum bekomme ich immer Fehlermeldungen, wenn ich Edelsteine installiere?
17228
Andrew
Ich bekomme also scheinbar immer Fehlermeldungen, wenn ich neue Edelsteine installiere. Ich bin neu bei Ruby, Rails und RubyGems, daher ist es sehr frustrierend. Ich bin mir nicht sicher, ob ich etwas konfigurieren muss oder ob ich etwas falsch installiert habe ... Also hoffentlich können Sie helfen. Hier sind einige Beispiele für die Probleme, die ich habe:
# 1: Sudo vs. Sudo nicht verwenden
In tonnenweise Tutorials / Dokumentationen verwenden sie immer:
gem install gem-name
Für mich führt das fast immer zu Fehlern ... bis ich ...
sudo gem install gem-name
... dann installiert sich der Edelstein normalerweise gut. Wie können die Menschen laufen, gem installohne mit zu beginnen sudo?
Ernst! Ich wünschte, ich hätte es früher getan. Ruby Version Manager ermöglicht es, mehrere Versionen von Ruby mit jeweils eigenen Gems auszuführen und nahtlos zwischen den verschiedenen Versionen zu wechseln. Außerdem müssen Sie nicht sudomehr verwenden. Plus, es ist super einfach zu installieren, also sollten Sie es tun!
# 2: "Header-Dateien können nicht gefunden werden"
Manchmal bekomme ich eine solche Nachricht, auch wenn ich unter sudolaufe ...
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h
Was bedeutet das überhaupt?
Lösung:
Das Problem ist, dass es den Befehl "make" nicht finden kann. Es wird automatisch installiert, wenn Sie XCode installieren. Und aus irgendeinem Grund, obwohl ich XCode installiert hatte, konnte es ihn nicht finden. Ich habe die neueste Version von XCode heruntergeladen und neu installiert. Wenn ich jetzt laufe which make, kehrt es richtig zurück /usr/bin/make.
/Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/source.rb:352: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777
Das sieht nicht gut aus. Was muss ich tun, um das Problem zu beheben?
Lösung:
Etwas, das ich zu einem bestimmten Zeitpunkt installiert habe, hat die Berechtigungen für mein /usr/local/binVerzeichnis (sowie für mein Verzeichnis /usr/localund das /usr/local/mysqlVerzeichnis) geändert . Um diese zurück zu ändern:
sudo chmod 755 /usr/local/bin
# 4: bcrypt-ruby kann nicht installiert werden
Schließlich versuche ich, bundle installauf meiner brandneuen Rails 3.0.0.beta4-App zu laufen, und ich erhalte folgende Fehlermeldung:
Installing bcrypt-ruby (2.1.2) from .gem files at /Users/andrew/.bundle/ruby/1.8/cache with native extensions /Library/Ruby/Site/1.8/rubygems/installer.rb:483:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h Gem files will remain installed in /Users/andrew/.bundle/ruby/1.8/gems/bcrypt-ruby-2.1.2 for inspection. Results logged to /Users/andrew/.bundle/ruby/1.8/gems/bcrypt-ruby-2.1.2/ext/mri/gem_make.out from /Library/Ruby/Site/1.8/rubygems/installer.rb:446:in `each' from /Library/Ruby/Site/1.8/rubygems/installer.rb:446:in `build_extensions' from /Library/Ruby/Site/1.8/rubygems/installer.rb:198:in `install' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/source.rb:170:in `install' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/installer.rb:34:in `run' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/spec_set.rb:12:in `each' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/spec_set.rb:12:in `each' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/installer.rb:21:in `run' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/installer.rb:6:in `install' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/cli.rb:91:in `install' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor/task.rb:33:in `send' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor/task.rb:33:in `run' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor/invocation.rb:109:in `invoke' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor/invocation.rb:116:in `call' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor/invocation.rb:116:in `invoke' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor.rb:137:in `start' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor/base.rb:378:in `start' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/lib/bundler/vendor/thor.rb:124:in `start' from /Library/Ruby/Gems/1.8/gems/bundler-0.9.26/bin/bundle:13 from /usr/bin/bundle:19:in `load' from /usr/bin/bundle:19
Es sieht aus wie bcrypt-rubyeine Art Abhängigkeit, die es zu installieren versucht. Wie bekomme ich das zum Laufen? Woher weiß ich, warum es versagt?
Lösung:
Dies wurde durch die Neuinstallation von XCode behoben.
Sorry für die Wäscheliste, aber ich möchte wirklich alle diese Probleme loswerden!
Dies wäre besser als getrennte Fragen, da ich nur einige beantworten kann.
sudo- Unter OS X werden Gems in einem Verzeichnis unter installiert /Library. Alles hier wird von allen Benutzern auf dem Mac gemeinsam genutzt. Um darauf schreiben zu können, benötigen Sie Root-Zugriff, den Ihnen sudo bietet. Befehle ohne Sudo werden angezeigt, wenn einer der beiden Benutzer die Dinge schnell erklärt, da sie davon ausgehen, dass die Benutzer wissen, wann Sudo verwendet wird oder ob sie Ruby für die Installation in einem Benutzerverzeichnis gemäß der Ruby-Dokumentation eingerichtet haben
und 4 .: Header-Dateien für Ruby nicht gefunden. Ich vermute, dass Sie XCode, die Apple-Entwicklerwerkzeuge, nicht installiert haben. Sie befinden sich auf Ihrer OS X-DVD oder können von Apple oder dem App Store heruntergeladen werden, wenn Sie OS X Lion verwenden.
/usr/local/bin- das ist schlecht. Ausführen /Applications/Utilities/Disk Utility.app, wählen Sie das Startlaufwerk und Reparaturberechtigungen.
Laufendes Festplatten-Dienstprogramm hat diese Berechtigungsmeldung nicht korrigiert = \
Andrew vor 14 Jahren
1
Ich habe bereits XCode installiert, daher weiß ich nicht, warum dies das Problem sein würde
Andrew vor 14 Jahren
0
für 2 & 4 - Ich benutze nicht viel Ruby (und wenn ich Macports verwendet habe), aber ich stelle fest, dass der Pfad zu ruby.h /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Ruby ist. Framework / Versionen / 1.8 / usr / lib / ruby / 1.8 / universal-darwin10.0 / ruby.h - Haben Sie einen anderen Rubin installiert?
Mark vor 14 Jahren
0
Berechtigungen für sudo chmod 755 / usr / local / bin
Mark vor 14 Jahren
0
re: 2 & 4, ich habe XCode neu installiert und das schien das Problem zu beheben
Andrew vor 14 Jahren
0
Das Ändern von / usr / local / bin (und einigen anderen) auf 755 schien zu funktionieren. Ich gehe davon aus, dass es das war, was sie eigentlich hätten sein sollen, und irgendwie hat es etwas hinter den Kulissen verändert.
Andrew vor 14 Jahren
0
2
ghoppe
Ich schlage vor, Ruby Version Manger zu installieren, und Sie müssen sich nicht um Sudo-Probleme sorgen. Sie können problemlos zwischen verschiedenen Ruby-Versionen und Gem-Sets wechseln.
Wenn ich gewusst hätte, wie einfach die Installation war, hätte ich es früher getan. Ich liebe RVM !!!
Andrew vor 14 Jahren
0
@Undrew Sweet! Froh, dass ich helfen konnte. RVM hat mir die Entwicklung von Ruby / Schienen soooo viel einfacher gemacht.
ghoppe vor 14 Jahren
0
1
uncrase
Zu # 4:
Wenn Sie XCode vermissen und über ein Apple Developers-Konto verfügen, können Sie auch nur die Befehlszeilentools (ca. 180 MB) installieren - ein Download auf der ADC-Site .
0
Mohammad Arif
Der Grund für den Berechtigungsfehler liegt darin, dass Sie nicht als Root-Benutzer am Terminal angemeldet sind.
Wenn Sie bereits über root verfügen, aktivieren Sie auf Ihrem Mac im Terminaltyp (ohne das $)
$ su
Wenn Sie keinen Root-Benutzer haben, müssen Sie ihn mit den folgenden Schritten aktivieren
Wählen Sie im Apple-Menü die Option Systemeinstellungen….
Wählen Sie im Menü Ansicht die Option Benutzer und Gruppen.
Klicken Sie auf die Sperre und authentifizieren Sie sich als Administratorkonto.
Klicken Sie auf Anmeldeoptionen….
Klicken Sie unten rechts auf die Schaltfläche "Bearbeiten" oder "Verbinden".
Klicken Sie auf die Schaltfläche "Open Directory Utility…".
Klicken Sie auf das Schloss im Directory Utility-Fenster.
Geben Sie einen Administrator-Kontonamen und ein Kennwort ein und klicken Sie auf OK.
Wählen Sie im Menü Bearbeiten die Option Root-Benutzer aktivieren.
Geben Sie das Root-Passwort, das Sie verwenden möchten, in die Felder Password und Verify ein, und klicken Sie auf OK.