我使用Fedora 14和MySQL和MySQL服务器5.1.42安装和运行。
现在我试着以根用户的身份做这个:
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。
对于那些可能对公认的答案感到困惑的人,就像我一样,您还需要安装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
如果你使用的是ruby的早期版本(比如2.2),那么你需要运行:
sudo apt-get install ruby2.2-dev
(其中2.2是你想要的Ruby版本)
我最初的解决方案是通过安装ruby-devel、patch和rubygems来解决上述错误。
我的问题有点不同,因为bcrypt 3.1.11在Fedora 23上仍然存在编译和安装问题。我需要额外的包裹。所以在确保我安装了上述内容后,我仍然遇到了一些问题:
gcc: error: conftest.c:没有这样的文件或目录
gcc: error: /usr/lib/rpm/redhat/redhat-harden -cc1:没有这样的文件或目录
从这里我必须做以下事情:
我确保我不缺少任何C编译器工具sudo dnf组安装“C开发工具和库”
然后我运行sudo dnf install redhat-rpm-config来解决上面列出的gcc问题。
你可以在这里找到一篇关于Fedore项目的文章。你也可以找到其他需求的答案。