gemインストール:gemネイティブ拡張のビルドに失敗しました(ヘッダーファイルが見つかりません)


356

私はFedora 14を使用していますが、MySQLおよびMySQLサーバー5.1.42がインストールされ、実行されています。今私はrootユーザーとしてこれをやろうとしました:

gem install mysql

しかし、私はこのエラーを受け取ります:

Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
    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/lib/ruby/gems/1.8/gems/mysql-2.8.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

ここで何が問題になっていますか?インストールされているruby 1.8.7で。そして最新のrubygems 1.3.7。


簡単な推測ですが、MySQLの開発ファイルヘッダーはありますか
DrColossos 2010年

これらの開発ファイルヘッダーを取得するにはどうすればよいですか?
Tim

1
私はUbuntuでそれを行いました:apt-get install ruby​​-dev ruby​​gems gem install mysql-with-mysql-config = / usr / bin / mysql_configすべて正常に動作します。
Ivan Carrasco Quiroz

回答:


757

私がそうであったように、受け入れられた答えで混乱するかもしれない人のために、あなたはまた、Rubyヘッダーをインストールする必要があります[ ruby-devel ]。

私の皮を救った記事はこちらです。

そして、これは修正されたソリューションです(私はFedora 13にいることに注意してください):

yum -y install gcc mysql-devel ruby-devel rubygems
gem install -y mysql -- --with-mysql-config=/usr/bin/mysql_config

Debian、およびDebianスタイルのパッケージングを使用するその他のディストリビューションの場合、ruby開発ヘッダーは次の方法でインストールされます。

sudo apt-get install ruby-dev

Ubuntuの場合、ruby開発ヘッダーは次の方法でインストールされます。

sudo apt-get install ruby-all-dev

以前のバージョンのルビー(2.2など)を使用している場合は、以下を実行する必要があります。

sudo apt-get install ruby2.2-dev

(ここで、2.2は目的のRubyバージョンです)


@NoBugs追加情報をありがとう:)
ブライアンレイシー

1
これは、Ruby on Railsを使用してアプリを作成しようとして問題が発生したときに機能しました。jsonをインストールできず、バンドラーが続行できないという不満がありました。ruby-develのインストールはうまくいきました。
ジャック

2
上記の@NoBugsによって投稿されたruby-devに加えて、Ubuntu(12.04)にはlibmysqlcient-devも必要でした。(または、以下のDamian NowakによるDebian / Ubuntuの回答をご覧ください。)
Jon Garvin

1
jekyllのインストールに問題があったとき、RHEL6で私のために働いた。
David Mason

これは私がfpmをインストールするのに役立ちました、おそらくルビベースのソフトウェアをインストールするのに役立ちます。使用しましたyum -y install gcc ruby-devel rubygems
ゾルタン2014年

91

Red Hat、Fedora:

yum -y install gcc mysql-devel ruby-devel rubygems
gem install -y mysql -- --with-mysql-config=/usr/bin/mysql_config

Debian、Ubuntu:

apt-get install libmysqlclient-dev ruby-dev
gem install mysql

Arch Linux:

pacman -S libmariadbclient
gem install mysql

これですか?mysql-devel.i686:MySQLアプリケーションの開発用ファイル
Tim

1
確かにmysql-develが必要です。問題は、他に何が必要かということです。多分これを試してください:fedora-tunisia.org/?q=node / 44それが動作するかどうか私に知らせてください。
Nowaker、2010年

私はここでこの問題を抱えていました:stackoverflow.com/questions/6297751/…良い解決策!
ケビンブラウン

あなたの言うことは必須ですが、問題のエラーメッセージを修正するために必要なのはruby-develです。
エドワードアンダーソン

RedHatシステムのBTWはruby-develです。
texasbruce 2013年

50

2015年にこれを読んでいる人のために:たまたまパッケージをインストールした場合は、適切なRubyヘッダーを取得ruby2.0するために一致するものをインストールする必要がありますruby2.0-dev。同じことがruby2.1and ruby2.2などにも当てはまります。次に例を示します。

$ sudo apt-get install ruby2.2-dev

fedora 22の場合:sudo dnf install ruby-devel
Geoffrey De Smet

ありがとうございました!ルビーは時々とても奇妙です。
nelsonenzo 2016年

Ruby 2.3も同様です。
Charles Roper、

24

のようです

yum install ruby-devel

私が実行するには十分でした

gem install datamapper

その後。

別のパッケージをインストールする必要がある可能性があります。

yum install gcc gcc-c++

ネイティブ拡張を構築できるようにするため


1
明確なメッセージなしで非常に奇妙なエラーが発生しました。これは、gccパッケージがインストールされていなかったためです。:(この投稿では、この基本的な手順を思い出しました。; P
BrunoJCM '20

9

xcodeツールが正しくインストールされていない場合、MACユーザーはこの問題に直面する可能性があります。以下は、問題を取り除くためのコマンドです。

xcode-select --install

ええ、それが問題でした。どうもありがとう!
Eduard Ghinea

そして、このsudo gem install -n /usr/local/bin cocoapods thumbsup
hyd00

8

私はここで解決策を見つけました。

# yum install mysql-devel gcc make
# gem install mysql -- --with-mysql-config=/usr/bin/mysql_config

8

この投稿は私に役立ちました。どうもありがとう。

Linux(Ubuntu 12.10)では、実行する必要がありました

sudo apt-get install ruby
sudo apt-get install rubygems
sudo apt-get install ruby-dev

うまく走る前に

sudo gem install jekyll

4

gemとrubyをインストールしていて、railsをインストールできない場合は、ruby dev libをインストールしてください。

sudo apt-get install ruby-dev

わたしにはできる。私は別の解決策を試しました。


私はUbuntu 16.04LTSを持っています。他の以前のバージョンでも同じだと思います。
Hafiz Shehbaz Ali 2016

2

Red Hat、Fedora:

sudo dnf -y install gcc-c++ redhat-rpm-config ruby-devel gcc mysql-devel rubygems

2

私のようにまだ問題が発生している場合(Ubuntu 16.04を使用しています)、bcrypt、pgなどのgemをインストールするために次のコマンドを入力する必要がありました。それらは、1つを除いてすべて上記のものに似ています。

sudo apt-get install ruby-dev -y
sudo apt-get install libpq-dev -y
sudo apt-get install libmysqlclient-dev
sudo apt-get install build-essential patch -y

これにより、PG、bcrypt、recaptchaなどのgemをインストールできました。


1

私の最初の解決策はruby-develpatchをインストールして上記のエラーを解決することでした。rubygems

bcrypt 3.1.11にはまだFedora 23でのコンパイルとインストールの問題があったため、私の問題は少し異なっていました。追加のパッケージが必要でした。したがって、上記をインストールしたことを確認した後も、問題が発生していました。

gcc: error: conftest.c: No such file or directory

gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory

ここから私は次のことをしなければなりませんでした:

  • Cコンパイラツールが不足していないことを確認しました sudo dnf group install "C Development Tools and Libraries"

  • 次にsudo dnf install redhat-rpm-config、上記のgccの問題を解決するために実行しました。

Fedore Projectの記事はここにあります。また、他のニーズへの回答を見つけることもできます。



1

次のパッケージをインストールする必要があります。

  • ruby-dev

  • gcc

  • libffi-dev

  • 作る

これがdebian distroのコマンドです:

 sudo apt install gcc ruby-dev rubygems libgmp-dev libgmp3-dev make 


0

redhat-rpm-configをインストールする必要があります。あなたの問題は解決したと思います!



0

あなたはRVMを台無しにしたかもしれません。

やってみてください:

\curl -sSL https://get.rvm.io | bash -s stable --rails

-1


例として、私のPATHにruby.hファイルへのパスを追加するだけです。

エクスポートPATH = $ PATH:/ usr / src / ruby​​-xxxxxx

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.