`require ':ロードするファイルはありません— mkmf(LoadError)


563

ruby1.9.1を使用して、Ubuntu Natty Narwhal 11.04にレールをインストールしようとしていました。

apt-get install ruby1.9.1-fulldevパッケージを含むrubyをインストールしました。私はエラーをグーグルで調べて、私がすでに持っている1.9.1-devをインストールすることをすべて提案しました。

Building native extensions.  This could take a while...
ERROR:  Error installing rails:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.8 extconf.rb
extconf.rb:36:in `require': no such file to load -- mkmf (LoadError)
    from extconf.rb:36


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/bcrypt-ruby-3.0.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out

1
watir-webdriverをインストールしようとすると、並行してエラーが発生しました。また、ruby1.0.1-devをインストールすることによって修正されました
kaleidic

回答:


979

ソリューションを検索した結果、-devパッケージだけでなく、パッケージも必要であることがわかりましたruby1.8。だからあなたがしruby1.9.1ているなら

sudo apt-get install ruby1.9.1-dev

または、一般的なrubyバージョンをインストールするには、(@ lamplightdevコメントに従って)使用します。

sudo apt-get install ruby-dev

それを修正する必要があります。

試してみてくださいlocate mkmfファイルが実際に存在しているかどうかを確認します。


220
以下は、現在インストールされているrubyバージョンに一致するdevパッケージをインストールします:sudo apt-get install ruby​​-dev
lamplightdev

ええ私のために働いた。現在のrubyバージョンのみをインストールする場合は、ruby -vを実行してバージョンを確認します。
Dan Bradbury

3
@lamplightdev私にとってはうまくいきませんでした。rubyのバージョンは1.9.3で、1.8をインストールしていました。ruby-devをインストールしようとした場合
Karthik T

1
をインストールしましたがruby-all-dev、おそらくすべてのバージョンで動作します。
jcubic 2014

これは、AWSでSOAPが廃止されたaws-sdkにも必要です。利害関係者が本番ビルドで何か-devに反対する場合の心配。(SDKも彼らを興奮させません)。
mckenzm 2014

185

これは私のために働いた答えです。上記のコメントにありましたが、ubuntu 12.04 ruby​​ 1.8.7の回答として正当な場所に値します

sudo apt-get install ruby-dev
# if above doesnt work make sure you have build essential
sudo apt-get install build-essential

また、ubuntuソフトウェアセンターを使用する場合は、「拡張モジュールをコンパイルするためのヘッダーファイル」として選択できるruby-devのアドオンがあることにも注意してください。
RightHandedMonkey 2013

sudo apt-get install ruby1.9.1-devコメントやこの回答を見る前にruby 1.9.3 を使用していたため、railsエクステンションを作成できました。そのようなバージョンの不一致が後で頭痛の原因になるかどうかはわかりませんが、公式に受け入れられた回答を少し変更してレールが正しくインストールされていることに注意してください。
DWils

RVMがある場合はどうなりますか?それでは、必要なルビバージョンはもうありませんか?
thesecretmaster 2016年

37

ビルドに必須のインストールも必要でした:

sudo apt-get install build-essential

これがここのチケットでした。ruby-devもインストールする必要があると思いますが、build-essentialもインストールするまで機能しませんでした。100万回の感謝
2015年

30

問題はUbuntu 13/04 / 13.10 / 14.04でまだ再帰的です

そして

sudo apt-get install ruby1.9.1-dev

大丈夫です。したがって、Ubuntu 13.04 / 13.10 / 14.04を使用している場合は、これを使用すると非常に便利です。

これは、rubyのバージョンが1.9.3であっても機能します。これは、リポジトリに利用可能なruby1.9.3-devがないためです...


1
はい、これはruby1.9.3でも動作しました。ubuntuリポジトリには、ruby1.9.3-devのパッケージがありませんでした。
DWils

--rubyを使用してrvm.ioからrvmをインストールした後は動作しませんでした。おそらく、前にapt-getでrubyを削除することをお
勧めします

18

やってみました:

sudo apt-get install ruby1.8-dev

3
1.9.1を使用していますが、ruby1.8-devをインストールする必要があるのはなぜですか?
オマールS.

これは本当に奇妙なことに1.9.1をインストールしましたが、1.8と表示されます。ruby-vを実行すると、次のようになります。ruby 1.8.7(2010-08-16 patchlevel 302)[x86_64-linux]
Omar S.

2
システムのルビー1.8がデフォルトのルビーとして設定されている
Matteo Alessani

10

バンドルのインストール時に同様のエラーが発生しました

sudo apt-get install ruby-dev

私にとってはうまく機能し、問題を解決しますMint 16 ruby​​1.9.3




0

RVM(Rubyバージョンマネージャー)を使用できます。これは、マシン上のrubyのすべてのバージョンを管理するのに役立ちます。これは、開発に非常に役立ちます(不安定リリースから安定リリースに移行する場合)。

またはLinux(ubuntu)の場合は sudo apt-get install ruby1.8-dev

それsudo gem install railsを確認するには rails -v、レール上のバージョンを表示します

その後、バンドルをインストールできます(開発に必要なgem)


LinuxでもRVMを使用できます。私はそれをやっています(しかし、レールをインストールするときにこのmkmfエラーの問題がまだあります)
thesecretmaster
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.