gem install:无法构buildgem原生扩展(无法find头文件)
我使用的是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
这里有什么问题? 在安装ruby1.8.7。 和最新的rubygems 1.3.7。
对于那些可能被接受的答案困惑的人,就像我一样,还需要安装ruby头文件[ ruby-devel ]。
保存我的皮的文章就在这里 。
这是修改后的解决scheme(请注意,我在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版本)
红帽,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
对于2015年的读者来说:如果您碰巧安装了ruby2.0
包,则需要安装匹配的ruby2.0-dev
来获取适当的Ruby头文件。 ruby2.1
和ruby2.2
等也是ruby2.2
。例如:
$ sudo apt-get install ruby2.2-dev
这似乎是
yum install ruby-devel
对我来说足够了
gem install datamapper
之后。
您可能需要安装其他软件包:
yum install gcc gcc-c++
能够构build本地扩展
我在这里find了解决scheme。
# yum install mysql-devel gcc make # gem install mysql -- --with-mysql-config=/usr/bin/mysql_config
这个职位帮了我。 非常感谢。
在Linux(Ubuntu 12.10)我需要运行
sudo apt-get install ruby sudo apt-get install rubygems sudo apt-get install ruby-dev
我才能成功运行
sudo gem install jekyll
如果你有安装gem和ruby,不能安装导轨。 然后安装ruby dev lib。
sudo apt-get install ruby-dev
它适用于我。 我已经尝试了不同的解决scheme。
红帽,Fedora:
sudo dnf -y install gcc-c++ redhat-rpm-config ruby-devel gcc mysql-devel rubygems
当xcode工具安装不正确时,MAC用户可能会遇到这个问题。 下面是摆脱这个问题的命令。
xcode-select --install
sudo apt-get install ruby-dev
这个命令为我解决了这个问题!
对于那些仍然遇到问题的人,就像我(我正在使用Ubuntu 16.04),为了得到像bcrypt,pg和其他安装的gem,我必须input以下命令。 除了一个以外,它们都与上述类似。
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。
我最初的解决scheme是通过安装ruby-devel
, patch
和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问题。
你可以在这里find一个关于Fedore项目的文章 。 您也可以find其他需求的答案。
在openSUSE中:
zypper in ruby-devel
对我工作:)
有必要安装redhat-rpm-config。 我想它解决了你的问题!
只要在我的path中添加ruby.h文件的path
例如:
export PATH = $ PATH:/ usr / src / ruby-xxxxxx