web-dev-qa-db-ja.com

Json gem 'mkmf.rbがRubyのヘッダーファイルを見つけることができません'のインストール中にエラーが発生しました

文脈では、それはファイアウォールを持っているリモートサーバー上にあります。プロキシを介して環境を設定しています。私はRuby 1.8.7を持っています。 gemをインストールしようとすると..

Sudo gem install --http-proxy <Host address>:<port> json

次のようなエラーが表示されます。

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

何が問題なのかわからないので、グーグルしてこれらを見つけました

何かヒントは?ありがとうございます。

296
Navneet

mimoraleaによって述べられているように

あなたがRuby 2.0または2.2を使っているなら(ありがとう@ 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

または、一般的な方法:

Sudo apt-get install Ruby`ruby -e 'puts Ruby_VERSION[/\d+\.\d+/]'`-dev

最初に投稿したリンクは 正確に あなたの場合です。Ruby開発環境はインストールされていません。 Rubyの拡張機能をコンパイルするには開発環境が必要です。これらの拡張機能は、ほとんどCで書かれています。 Proxyはこの問題とは何の関係もありません。すべてがうまくダウンロードされ、コンパイルが失敗するだけです。

ターゲットマシンにRuby-dev(rpmベースのディストリビューションの場合はRuby-devel)パッケージをインストールすることをお勧めします。 gccパッケージも必要かもしれません。

試してください:

$ Sudo apt-get install Ruby-dev

または、Redhatディストリビューションの場合:

$ Sudo yum install Ruby-devel

または、[open] SuSEの場合:

$ Sudo zypper install Ruby-devel
641

Ruby 2.0または2.2(Thanks @ patrick-davey)または2.3(Thanks @juanitofatas)を使用している場合.

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

そして、あなたはここにパターンを得ます...

70
mimoralea

私はこの問題にも遭遇しました brightboxを介してUbuntuにRubyをインストールします そしてRuby-devがRubyのトランクだと思いました。だから私はインストールしませんでした。 Ruby2.3-devをインストールするとそれが修正されます。

Sudo apt-get install Ruby2.3-dev
19
Juanito Fatas

Mac OS Xでこれを手に入れている人のために、XCodeが既にインストールされている場合でも、XCodeコマンドラインツールをインストールするために次のコマンドを実行する必要があります。

Sudo xcode-select --install

また、次のコマンドを実行してXCodeの利用規約に同意する必要があります。

Sudo xcodebuild -license
11
Juan De León

Cygwinを使用して次のコマンドを実行したところ、同様の問題が発生しました。

$ gem install rerun

私は以下のcygwinパッケージをインストールすることによってそれを解決しました:

  • ルビー開発
  • libffi-devel
  • gccコア
  • gcc-g ++
  • make
  • automake1.15
10
Kinifwyne

ほとんどの投票された解決策は私のマシンではうまくいきませんでした(linux mint 18.04)。注意深く見たところ、g ++が見つからないことがわかりました。で解決

Sudo apt-get install g ++

9
Miles Davis

sUSEを使う場合

Sudo yast2 -i Ruby-devel
8
Prokur

Fedora 21以降では、端末を開いてRuby開発ファイルをrootとしてインストールするだけです。

dnf install Ruby-devel
2
emmojo

Ruby-develをインストールした後にgccをインストールする必要があるかもしれません

1
bott