如何在同一台开发机器上运行不同的Ruby版本和Rails版本

时间:2014-07-08 08:21:55

标签: ruby-on-rails ruby

我有一台运行ruby 1.9.3p545和rails版本Rails 3.2.13的开发机器,目前有5个带有capistrano脚本的应用程序。

我现在想要使用同一台机器开发一个新的应用程序,但Ruby 2.0.0Rails 4.1

如何在没有冲突的情况下做到这一点。感谢名单!

2 个答案:

答案 0 :(得分:1)

Rbenv:https://github.com/sstephenson/rbenv

Ruby-build:https://github.com/sstephenson/ruby-build

Rbenv安装

以root身份

cd /opt
git clone git://github.com/sstephenson/rbenv.git rbenv

touch /etc/profile.d/rbenv
echo 'export RBENV_ROOT=/opt/rbenv' >> /etc/profile.d/rbenv
echo 'export PATH=/opt/rbenv/bin:$PATH' >> /etc/profile.d/rbenv
echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv

编辑 /root/.bashrc 并添加到文件的最顶部

source /etc/profile.d/rbenv

修改 / home /#your_user_name#/ .bashrc 并添加到文件的最顶部

source /etc/profile.d/rbenv

Ruby-build安装

exec $SHELL
mkdir -p $RBENV_ROOT/plugins
cd $RBENV_ROOT/plugins
git clone git://github.com/sstephenson/ruby-build.git
echo 'export PATH="$RBENV_ROOT/plugins/ruby-build/bin:$PATH"' >> /etc/profile.d/rbenv
exec $SHELL

此时你已经准备就绪,准备安装任何版本的ruby

Ruby安装

版本2.1.2和1.9.3p545的示例,但您可以选择任何您想要的版本

rbenv install 2.1.2
rbenv install 1.9.3p545

设置ruby的全球版

rbenv global 2.1.2

设置ruby的区域设置版本

cd /your/project/directory
rbenv local 1.9.3p545

安装Bundler

请注意,在从应用程序root运行bundler以安装gem之前,您必须使用以下命令自行安装bundler

gem install --no-rdoc --no-ri bundler rake
rbenv rehash

更新rbenv

cd /opt/rbenv
git pull
cd /opt/rbenv/plugins/ruby-build
git pull
rbenv rehash

答案 1 :(得分:1)

您可以查看这篇精彩的文章:Phusion Passenger & running multiple Ruby versions

基本上,您可以使用rvm和反向代理来完成它。在你的情况下,ruby -v 2.0.0,如果你使用乘客,你可以:

  • rvm使用2.0.0
  • gem install passenger --pre
  • cd / path / to / your / app
  • 乘客开始-a 127.0.0.1 -p 3000 -d
  • 在apache config中设置反向代理

    <VirtualHost *:80>
      ServerName www.hamburgers.com
      DocumentRoot /path/to/your/app/public
      PassengerEnabled off
      ProxyPass / http://127.0.0.1:3000
      ProxyPassReverse / http://127.0.0.1:3000
    </VirtualHost>
    

您也可以尝试使用独角兽代替乘客,或者用ngix替换apache。