学习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
makemake install
(还是要准备一份ruby的源码啊~)