Fehler beim Erstellen der nativen Gem-Erweiterung - Rails-Installation


74

Ich habe Ruby on Rails basierend auf den Anweisungen der edX Online-Klasse installiert.

Hier ist eine Liste der Terminalbefehle und gegebenenfalls der entsprechenden Ausgabe:

$ sudo apt-get install ruby1.9.1

Installation erfolgreich

$ wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.24.tgz
$ tar zxvf ruby-1.8.24.tgz
$ cd ruby-1..8.24
$ sudo ruby setup.rb
RubyGems 1.8.24 installed

== 1.8.24 / 2012-04-27

* 1 bug fix:

  * Install the .pem files properly. Fixes #320
  * Remove OpenSSL dependency from the http code path


------------------------------------------------------------------------------

RubyGems installed the following executables:
    /usr/bin/gem1.9.1

Bis hierher sah alles gut aus, aber ich habe versucht, Schienen zu installieren und bin gescheitert:

$ sudo gem install rails
Fetching: i18n-0.6.1.gem (100%)
Fetching: multi_json-1.3.6.gem (100%)
Fetching: activesupport-3.2.8.gem (100%)
Fetching: builder-3.0.3.gem (100%)
Fetching: activemodel-3.2.8.gem (100%)
Fetching: rack-1.4.1.gem (100%)
Fetching: rack-cache-1.2.gem (100%)
Fetching: rack-test-0.6.1.gem (100%)
Fetching: journey-1.0.4.gem (100%)
Fetching: hike-1.2.1.gem (100%)
Fetching: tilt-1.3.3.gem (100%)
Fetching: sprockets-2.1.3.gem (100%)
Fetching: erubis-2.7.0.gem (100%)
Fetching: actionpack-3.2.8.gem (100%)
Fetching: arel-3.0.2.gem (100%)
Fetching: tzinfo-0.3.33.gem (100%)
Fetching: activerecord-3.2.8.gem (100%)
Fetching: activeresource-3.2.8.gem (100%)
Fetching: mime-types-1.19.gem (100%)
Fetching: polyglot-0.3.3.gem (100%)
Fetching: treetop-1.4.10.gem (100%)
Fetching: mail-2.4.4.gem (100%)
Fetching: actionmailer-3.2.8.gem (100%)
Fetching: rake-0.9.2.2.gem (100%)
Fetching: rack-ssl-1.3.2.gem (100%)
Fetching: thor-0.16.0.gem (100%)
Fetching: json-1.7.5.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing rails:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/local/lib/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
    from /usr/local/lib/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from extconf.rb:1:in `<main>'


Gem files will remain installed in /usr/lib/ruby/gems/1.9.1/gems/json-1.7.5 for inspection.
Results logged to /usr/lib/ruby/gems/1.9.1/gems/json-1.7.5/ext/json/ext/generator/gem_make.out

Antworten:


162

mkmfist Teil des ruby1.9.1-devPakets. Dieses Paket enthält die Header-Dateien, die für Erweiterungsbibliotheken für Ruby 1.9.1 benötigt werden. Sie müssen das ruby1.9.1-devPaket installieren , indem Sie Folgendes tun:

sudo apt-get install ruby1.9.1-dev

Dann können Sie Rails wie gewohnt installieren.

Im Allgemeinen ist es einfacher:

sudo apt-get install ruby-dev

musste schreiben sudo apt-get install ruby1.9.1-devstatt sudo apt-get install ruby1.9-dev. Ansonsten hat alles gut funktioniert, danke.
Pata Kusik

Vielen Dank, Alter! Ich werde verrückt mit rb-inotify Abhängigkeitsproblem ... (mit sass -watch)
jossemarGT

17
Für die Aufzeichnung sudo apt-get install ruby-devwar genug für mich.
Ezakto

Noch einmal Danke. Ich habe versucht, das Gh-Pages-Juwel auf Ubuntu gemäß den folgenden Anweisungen einzurichten : help.github.com/articles/using-jekyll-with-pages , aber ich muss den Installations-Ruby-Dev-Schritt verpasst haben.
Davewasthere

Ja. Auf meinem Computer ist diese Version ruby.v.2.1. Wenn ich ruby1.9.1-dev installiert habe, ist das Ergebnis noch fehlerhaft. Wenn ich benutze sudo apt-get install ruby-dev, installiert das Ubuntu den ruby2.1-dev. Das Ergebnis ist also in Ordnung!
bnPYSse

8

Die vorgeschlagene Antwort funktioniert nur für bestimmte Versionen von Ruby. Einige Kommentatoren schlagen vor, Ruby-Dev zu verwenden. das hat auch bei mir nicht funktioniert.

sudo apt-get install ruby-all-dev

arbeitete für mich.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.