rbenv:同一ruby的多个实例
我有两个脚本需要相同版本的Ruby。但是,每个脚本还需要不同版本的gem(nokogiri)。其中一个脚本将与nokogiri的两个版本(1.6.2.1和1.6.1)一起运行。但是,另一个脚本将仅在版本1.6.1下运行;如果安装了1.6.2.1,脚本将无法正常执行 我知道如何使用rbenv安装多个版本的Ruby。但是可以安装同一版本Ruby(2.1.2)的多个实例吗?如果是,怎么做?我看到两种选择:rbenv:同一ruby的多个实例,ruby,multiple-instances,rbenv,Ruby,Multiple Instances,Rbenv,我有两个脚本需要相同版本的Ruby。但是,每个脚本还需要不同版本的gem(nokogiri)。其中一个脚本将与nokogiri的两个版本(1.6.2.1和1.6.1)一起运行。但是,另一个脚本将仅在版本1.6.1下运行;如果安装了1.6.2.1,脚本将无法正常执行 我知道如何使用rbenv安装多个版本的Ruby。但是可以安装同一版本Ruby(2.1.2)的多个实例吗?如果是,怎么做?我看到两种选择: 您可以使用不同的Gemfiles,让bundler负责设置正确的gem版本。如果脚本位于不同的目
Gemfile
s,让bundler负责设置正确的gem版本。如果脚本位于不同的目录中,那么应该没有问题rvm 2.1.1
rvm gemset create first second
rvm 2.1.1@first
gem install nokogiri -v 1.6.1
rvm 2.1.1@second
gem install nokogiri -v 1.6.2
2) 或者您可以使用bundler
gem install bundler
/dir_1/Gemfile
source 'http://rubygems.org'
gem 'nokogiri', '1.6.1'
/dir_2/Gemfile
source 'http://rubygems.org'
gem 'nokogiri', '1.6.2'
只需手动编译同一ruby的多个实例(无论安装它们的工具是什么),并配置不同的
--前缀
- 下载源代码
- 拔出
/configure--prefix=~/.rbenv/version/2.1.2-tSquirrel
make
sudo make安装
这就是rbenv文件建议实现这一目标的方式
您还可以重命名当前的“2.1.2”-目录,然后使用重新安装2.1.2。rbenv中的“版本”只是~/.rbenv/Versions中的目录,我猜您只需重命名/复制已安装的版本,然后使用“rbenv shell”选择“版本”您只需声明要从哪个目录使用二进制文件。使用自定义名称制作ruby安装程序定义文件的本地副本
$ cp ~/.rbenv/plugins/ruby-build/share/ruby-build/2.1.5 2.1.5-nokogiri161
将其作为自定义定义文件安装,无需编辑
$ rbenv install ./2.1.5-nokogiri161
现在您有了一个具有自定义名称的ruby版本,并且可以在其上安装自定义gems
$ rbenv shell 2.1.5-nokogiri161
$ gem install nokogiri -v 1.6.1
这对于安装具有自定义构建标志的ruby版本也很有用。例如,没有编译器优化的调试生成
$ cp ~/.rbenv/plugins/ruby-build/share/ruby-build/2.1.5 2.1.5-debug
$ RUBY_CONFIGURE_OPTS="optflags=-O0" rbenv install ./2.1.5-debug
$ rbenv shell 2.1.5-debug