我的堆栈如下:
安装了MySQL 5.5(按照http://www.if-not-true-then-false.com/2010/install-mysql-on-fedora-centos-red-hat-rhel/的步骤进行操作,因为yum仍然有MySQL 5.1,如果我尝试安装任何与mysql相关的软件包,它当然会按照yum预期的那样中断5.1)
$> mysql --version mysql Ver 14.14 Distrib 5.5.27,适用于Linux(x86_64),使用readline 5.1
$> ruby --version ruby 1.9.3p194(2012-04-20修订版35410)[x86_64-linux]
$> rvm --version rvm 1.14.6(稳定)作者:Wayne E. Seguin,Michal Papis [https://rvm.io/]
$> uname -a Linux localhost.mkf 2.6.32-279.5.1.el6.x86_64#1 SMP Tue Tue Aug 14 23:54:45 UTC 2012 x86_64 x86_64 x86_64 GNU / Linux
$> nginx -v nginx版本:nginx / 1.2.2
$> rails -v Rails 3.2.6
当我尝试安装mysql2 gem时,出现以下错误:
$> gem install mysql2
Building native extensions. This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
checking for mysql.h... no
checking for mysql/mysql.h... no
-----
mysql.h is missing. please check your installation of mysql and try again.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby
--with-mysql-config
--without-mysql-config
Gem files will remain installed in /usr/local/rvm/gems/ruby-1.9.3-p194/gems/mysql2-0.3.11 for inspection.
Results logged to /usr/local/rvm/gems/ruby-1.9.3-p194/gems/mysql2- 0.3.11/ext/mysql2/gem_make.out
当我这样做时
$> find / -name mysql.h
我什么都没得到
Mysql运行正常,我已经在其中创建了数据库和表,并且sql正在运行,没有任何问题。
是否可以在我的堆栈中安装mysql2 gem?如果是这样,那么任何我不知道的是什么?
更新:我尝试yum install mysql-devel
它会抛出错误,因为我
安装了mysql5.5,使用Remi存储库。虽然百胜期待
mySql 5.1
答案 0 :(得分:16)
你安装了mysql
吗?
如果不这样做,你还需要安装mysql dev文件,以便本地编译gem
sudo yum install mysql-devel
答案 1 :(得分:3)
我有这个工作:
wget http://cdn.mysql.com/Downloads/MySQL-5.5/MySQL-devel-5.5.27-1.el6.x86_64.rpm
rpm -Uvh MySQL-devel-5.5.27-1.el6.x86_64.rpm
gem install mysql
gem install mysql2
答案 2 :(得分:3)
如果得到这样的错误
$ sudo yum install mysql-devel
Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
10gen | 2.5 kB 00:00
base | 3.7 kB 00:00
centosplus | 3.4 kB 00:00
Not using downloaded repomd.xml because it is older than what we have:
Current : Wed Feb 12 07:03:25 2014
Downloaded: Sat Jan 4 21:29:15 2014
contrib | 2.9 kB 00:00
epel | 4.2 kB 00:00
epel/primary_db | 5.9 MB 00:00
extras | 3.4 kB 00:00
newrelic | 951 B 00:00
rpmforge | 1.9 kB 00:00
rpmforge-extras | 1.9 kB 00:00
ucloud | 1.3 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 2.0 MB 00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql-devel.x86_64 0:5.1.73-3.el6_5 will be installed
--> Processing Dependency: mysql = 5.1.73-3.el6_5 for package: mysql-devel-5.1.73-3.el6_5.x86_64
--> Finished Dependency Resolution
Error: Package: mysql-devel-5.1.73-3.el6_5.x86_64 (updates)
Requires: mysql = 5.1.73-3.el6_5
Installed: mysql-5.5.34-1.el6.remi.x86_64 (@remi)
mysql = 5.5.34-1.el6.remi
Available: mysql-5.1.71-1.el6.x86_64 (base)
mysql = 5.1.71-1.el6
Available: mysql-5.1.73-3.el6_5.x86_64 (updates)
mysql = 5.1.73-3.el6_5
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
试试这个
sudo yum --enablerepo=remi -y install mysql-devel
答案 3 :(得分:0)
要获取任何软件的头文件,您需要安装-dev
或-devel
变体。由于您使用的是非标准RPM,因此您可能希望查看相同的源是否具有该版本。
安装完成后,您应该没有任何问题。