gem install: 无法构建 gem 本机扩展(找不到头文件)

gem install: Failed to build gem native extension (can#39;t find header files)(gem install: 无法构建 gem 本机扩展(找不到头文件))
本文介绍了gem install: 无法构建 gem 本机扩展(找不到头文件)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我使用的是 Fedora 14,并且安装并运行了 MySQL 和 MySQL 服务器 5.1.42.现在我尝试以 root 用户身份执行此操作:

I am using Fedora 14 and I have MySQL and MySQL server 5.1.42 installed and running. Now I tried to do this as root user:

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.

What's wrong here? In installed ruby 1.8.7. and the latest rubygems 1.3.7.

推荐答案

对于那些可能对接受的答案感到困惑的人,就像我一样,您还需要安装 ruby 标头 [ruby-devel].

For those who may be confused by the accepted answer, as I was, you also need to have the ruby headers installed [ruby-devel].

拯救我隐藏的文章是此处.

这是修改后的解决方案(请注意,我使用的是 Fedora 13):

And this is the revised solution (note that I'm on 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 开发头文件通过以下方式安装:

For Debian, and other distributions using Debian style packaging the ruby development headers are installed by:

sudo apt-get install ruby-dev

对于 Ubuntu,ruby 开发头文件通过以下方式安装:

For Ubuntu the ruby development headers are installed by:

sudo apt-get install ruby-all-dev

如果您使用的是较早版本的 ruby(例如 2.2),则需要运行:

If you are using a earlier version of ruby (such as 2.2), then you will need to run:

sudo apt-get install ruby2.2-dev

(其中 2.2 是您想要的 Ruby 版本)

(where 2.2 is your desired Ruby version)

这篇关于gem install: 无法构建 gem 本机扩展(找不到头文件)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

ibtmp1是非压缩的innodb临时表的独立表空间,通过innodb_temp_data_file_path参数指定文件的路径,文件名和大小,默认配置为ibtmp1:12M:autoextend,也就是说在文件系统磁盘足够的情况下,这个文件大小是可以无限增长的。 为了避免ibtmp1文件无止境的暴涨导致
What does SQL clause quot;GROUP BY 1quot; mean?(SQL 子句“GROUP BY 1是什么意思?意思是?)
MySQL groupwise MAX() returns unexpected results(MySQL groupwise MAX() 返回意外结果)
MySQL SELECT most frequent by group(MySQL SELECT 按组最频繁)
Why Mysql#39;s Group By and Oracle#39;s Group by behaviours are different(为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同)
MySQL GROUP BY DateTime +/- 3 seconds(MySQL GROUP BY DateTime +/- 3 秒)