1. ホーム
  2. json

[解決済み] json gem のインストール中にエラー 'mkmf.rb can't find header files for ruby' が発生する。

2022-02-01 18:31:45

質問

文脈上、ファイアウォールを持つリモートサーバにあります。プロキシを経由して環境を整えています。私は ruby 1.8.7 . gem installしようとすると...

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

何が問題なのか分からないので、ググってみると、こんなのがありました。

何かヒントがあれば教えてください。ありがとうございます。

どのように解決するのですか?

現代版アップデート、として mimoraleaさん談 :

<ブロッククオート

ruby 2.0 または 2.2 を使用している場合 (@patrick-davey さんありがとうございます)。

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

または

sudo apt-get install ruby`ruby -e 'puts RUBY_VERSION[/\d+\.\d+/]'`-dev


最初に貼られたリンクは まさに あなたの場合、rubyの開発環境がインストールされていないのです。開発環境は、ruby の拡張機能をコンパイルするために必要です。 C . プロキシは問題とは関係なく、ダウンロードは正常に行われ、コンパイルに失敗するだけです。

をインストールすることをお勧めします。 ruby-dev ( ruby-devel をターゲットマシーンにインストールします。

gcc パッケージも必要な場合があります。

試してみてください。

$ sudo apt-get install ruby-dev

または、Redhatディストロの場合。

$ sudo yum install ruby-devel

あるいは、[open]SuSEの場合。

$ sudo zypper install ruby-devel