centos从源码搭建ruby环境(持续更新)

学习ruby,写了一个基于ruby的小应用;最近从原来的debian转移到新系统,linux,centos62,64位;于是重新安装环境,将步骤记录下,以免以后又得现查;

首先,更新系统

yum update -y

yum groupinstall "Development Tools"

从源码编译安装ruby包,
wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz
 
tar xvzf ruby-1.9.3-p194.tar.gz
cd ruby-1.9.3-p194
./configure
make
make install

此时
ruby --version
应该会有如下类似的提示
ruby 1.9.3p194 (2012-04-20 revision 35410)

安装gem
wget http://rubyforge.org/frs/download.php/76073/rubygems-1.8.24.tgz
tar xvzf rubygems-1.8.24.tgz
cd rubygems-1.8.24
ruby setup.rb

然后使用gem安装rails,
gem install rails
此时出现错误
install cannot load such file -- zlib

搞了很久,在谷歌帮助下解决:
cd 进入ruby源码目录,然后cd进入ext子目录,然后进入zlib子目录执行:
ruby extconf.rb
make
make install 

然后重新执行gem install rails,安装成功

cd进入rails工程,使用bundle安装依赖的包,
bundle install
直接提示openssl找不到,按照安装zlib的思路,
cd进入ruby源码目录,然后cd进入ext子目录,然后进入openssl子目录执行:
ruby extconf.rb
make
make install 

重新执行bundle install,提示mysql2安装不成功,安装mysql相关的包:
yum install mysql mysql-server mysql-devel

完成后重新执行bundle install,成功

rails启动服务
rails server -p 80

发生错误
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

vi Gemfile,加入下面两行
gem 'execjs'
gem 'therubyracer'

重新执行bundle install

rails启动服务
rails server -p 80

成功。

运行前先启动mysql服务,否则会出错误
service mysqld start

数据库迁移,因为是迁移项目,所有之前定义的数据库结构也需要迁移过来,执行
rake db:create
rake db:migrate

rails启动服务
rails server -p 80

访问成功

end


rails console

出现/usr/local/lib/ruby/1.9.1/irb/completion.rb:9:in `require': no such file to load -- readline (LoadError)

错误,在http://hi.baidu.com/asamchen/item/b4d53692e0b5e613934f41 上找到centos解决方法

yum install ncurses-devel readline-devel

然后再跑到ruby的源代码目录:ext/readline

ruby extconf.rb 

make

make install 

(还是要准备一份ruby的源码啊~)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值