it-swarm.com.de

Fehler beim Installieren von json gem 'mkmf.rb kann keine Header-Dateien für Ruby finden'

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

Irgendwelche Hinweise? Vielen Dank!

316
Navneet

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
682

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 ...

73
mimoralea

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
20
Juanito Fatas

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
13
Juan De León

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:

  • Ruby-Devel
  • libffi-devel
  • gcc-core
  • gcc-g ++
  • make
  • automake1.15
11
Kinifwyne

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 ++

10
Miles Davis

falls Sie SUSE verwenden

Sudo yast2 -i Ruby-devel
9
Prokur

Ab Fedora 21 öffnen Sie einfach ein Terminal und installieren die Entwicklungsdateien Ruby als Root.

dnf install Ruby-devel
4
emmojo

Möglicherweise müssen Sie gcc nach der Installation von Ruby-devel installieren

1
bott