Zum Beispiel auf einem entfernten Server, der eine Firewall hat. Ich richte meine Umgebung über einen Proxy ein. Ich habe Ruby 1.8.7
. Wenn ich versuche, Edelstein zu installieren ..
Sudo gem install --http-proxy <Host address>:<port> json
Ich erhalte folgenden Fehler:
Building native extensions. This could take a while...
ERROR: Error installing json:
ERROR: Failed to build gem native extension.
/usr/bin/Ruby extconf.rb
mkmf.rb can't find header files for Ruby at /usr/lib/Ruby/ruby.h
Gem files will remain installed in /usr/lib64/Ruby/gems/1.8/gems/json-1.8.1 for inspection.
Results logged to /usr/lib64/Ruby/gems/1.8/gems/json-1.8.1/ext/json/ext/generator/gem_make.out
Da ich mir nicht sicher war, was das Problem ist, habe ich gegoogelt und diese gefunden
gem install: Fehler beim Erstellen der nativen Erweiterung von gem (Header-Dateien können nicht gefunden werden - Die Anweisungen hier scheinen spezifisch für das zu installierende gem zu sein.
Wie installiere ich json gem - Fehler beim Erstellen der nativen gem-Erweiterung Dies scheint ein etwas anderer Fehler zu sein.
Irgendwelche Hinweise? Vielen Dank!
Update der Neuzeit, wie von mimoralea angegeben :
Falls Sie Ruby 2.0 oder 2.2 verwenden (danke @ patrick-davey).
Sudo apt-get install Ruby-dev Sudo apt-get install Ruby2.0-dev Sudo apt-get install Ruby2.2-dev Sudo apt-get install Ruby2.3-dev
oder allgemeiner Weg:
Sudo apt-get install Ruby`ruby -e 'puts Ruby_VERSION[/\d+\.\d+/]'`-dev
Der erste Link, den Sie gepostet haben, ist genau Ihr Fall: Es ist keine Ruby Entwicklungsumgebung installiert. Development env wird benötigt, um Ruby Erweiterungen zu kompilieren, die meist in C
geschrieben sind. Proxy hat nichts mit dem Problem zu tun: Alles wird gut heruntergeladen, nur die Kompilierung schlägt fehl.
Ich würde vorschlagen, dass Sie das Paket Ruby-dev
(Ruby-devel
für rpm-basierte Distributionen) auf Ihrem Zielcomputer installieren. Möglicherweise wird auch das Paket gcc
benötigt.
Versuchen:
$ Sudo apt-get install Ruby-dev
Oder für Redhat Distribution:
$ Sudo yum install Ruby-devel
Oder für [open] SuSE:
$ Sudo zypper install Ruby-devel
Falls Sie Ruby 2.0 oder 2.2 (danke @ patrick-davey) oder 2.3 (danke @juanitofatas) verwenden.
Sudo apt-get install Ruby-dev
Sudo apt-get install Ruby2.0-dev
Sudo apt-get install Ruby2.2-dev
Sudo apt-get install Ruby2.3-dev
Und Sie bekommen das Muster hier ...
Ich bin auch auf dieses Problem gestoßen, weil ich installiere Ruby auf Ubuntu über Brightbox und ich dachte, Ruby-dev ist der Trunk von Ruby. Also habe ich nicht installiert. Die Installation von Ruby2.3-dev behebt dies:
Sudo apt-get install Ruby2.3-dev
Unter Mac OS X müssen Sie möglicherweise den folgenden Befehl ausführen, um die XCode-Befehlszeilentools zu installieren, auch wenn Sie bereits XCode installiert haben:
Sudo xcode-select --install
Außerdem müssen Sie den allgemeinen Geschäftsbedingungen von XCode zustimmen, indem Sie den folgenden Befehl ausführen:
Sudo xcodebuild -license
Ich hatte ein ähnliches Problem mit cygwin, um den folgenden Befehl auszuführen:
$ gem install rerun
Ich habe es gelöst, indem ich die folgenden Cygwin-Pakete installiert habe:
Die am häufigsten gewählte Lösung funktionierte nicht auf meinem Computer (Linux Mint 18.04). Nach genauerem Hinsehen stellte ich fest, dass g ++ fehlte. Gelöst mit
Sudo apt-get installiert g ++
falls Sie SUSE verwenden
Sudo yast2 -i Ruby-devel
Ab Fedora 21 öffnen Sie einfach ein Terminal und installieren die Entwicklungsdateien Ruby als Root.
dnf install Ruby-devel
Möglicherweise müssen Sie gcc nach der Installation von Ruby-devel installieren