2010-11-29 118 views
300

我使用的是Fedora 14,並且我安裝並運行了MySQL和MySQL服務器5.1.42。 現在我試圖這樣做,因爲root用戶:gem install:無法構建gem原生擴展(無法找到頭文件)

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 

這裏有什麼錯?在安裝紅寶石1.8.7。和最新的rubygems 1.3.7。

+0

只是一個快速猜測:你有MySQL的開發文件頭 – DrColossos 2010-11-29 14:06:51

+0

我怎樣才能得到這些開發文件頭? – Tim 2010-11-29 14:12:47

+0

我在Ubuntu做了以下操作:apt-get install ruby​​-dev ruby​​gems gem install mysql -with-mysql-config =/usr/bin/mysql_config所有工作正常。 – 2012-05-29 16:51:48

回答

641

對於那些誰可以被接受的答案所迷惑,因爲我是,你還需要安裝紅寶石頭部[紅寶石-devel的

保存我的皮的文章是here

這是修改後的解決方案(請注意,我在Fedora 13):

sudo apt-get install ruby-dev 

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

爲Ubuntu的Ruby開發報頭被安裝如果您在使用Ruby的早期版本(如2.2),那麼你需要運行:

sudo apt-get install ruby2.2-dev 

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

84

紅帽,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 
+0

這是一個嗎? mysql-devel.i686:用於開發MySQL應用程序的文件 – Tim 2010-11-29 14:15:07

+0

我敢打賭是的。試一試。 – Nowaker 2010-11-29 14:20:34

+0

不,不幸的是,安裝mysql-devel後不幸的是同樣的錯誤。 – Tim 2010-11-29 14:24:38

8

我找到了解決辦法here

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

似乎

yum install ruby-devel 

,就足以讓我表演

gem install datamapper 

之後。

這是可能的,你需要安裝另一個軟件包:

yum install gcc gcc-c++ 

能夠建立原生擴展

-1

我想補充路徑紅寶石。在我的道路
.h文件,例如:

export PATH=$PATH:/usr/src/ruby-xxxxxx

8

這篇文章幫助了我。非常感謝。

在Linux(Ubuntu的12.10)我需要運行

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

我能成功地在2015年運行

sudo gem install jekyll 
49

對於任何人閱讀此之前:如果你碰巧安裝包ruby2.0,你需要安裝匹配的ruby2.0-dev以獲取適當的Ruby標頭。這同樣適用於ruby2.1ruby2.2等。例如:

$ sudo apt-get install ruby2.2-dev 
2

MAC的用戶可能會遇到這個問題時的Xcode工具安裝不正確。 下面是擺脫這個問題的命令。

xcode-select --install 
2

紅帽,Fedora的:

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

我最初的解決方案是通過安裝ruby-develpatchrubygems解決上述錯誤。

我的問題與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。您也可以找到其他需求的答案。

0

在openSUSE的:

zypper in ruby-devel 

作品給我:)

4

如果您安裝了寶石和紅寶石和無法安裝導軌。然後安裝ruby dev lib。

sudo apt-get install ruby-dev 

它適用於我。我嘗試了不同的解決方案。

1
sudo apt-get install ruby-dev 

這條命令爲我解決了這個問題!

0

有必要安裝redhat-rpm-config。我想它解決了你的問題!

1

對於那些仍然遇到問題的人,就像我(我正在使用Ubuntu 16.04),爲了獲得像bcrypt,pg和其他安裝的寶石,我必須輸入以下命令。除了一個之外,它們都與上面的類似。

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。

相關問題