位置:首页 > Ruby > Ruby环境下如何安装使用Bundler管理多版本Gem

Ruby环境下如何安装使用Bundler管理多版本Gem

时间:2026-08-18  |  作者:清风无痕  |  阅读:0

Bundler:管理不同项目中的 gem 版本

有了 Ruby 版本管理工具 rbenv,接下来就要考虑如何管理不同项目里依赖的 gem 版本。尤其是像 Rails 这样的大块头,版本管理更重要。

这时候,Bundler 就是帮你解决问题的利器。关于它诞生的背景,官网上已经写得很清楚,这里不展开,直接说实际使用经验。

Ruby环境下安装使用bundler来管理多版本的gem

安装

gem install bundler

基本使用

先创建一个项目目录,比如 app1。然后新建一个 Gemfile,指定要使用的 gem 和版本。

mkdir app1; cd app1;
echo "source 'https://ruby.taobao.org/'" > Gemfile
echo "gem 'rails,'4.1.0'" >> Gemfile
bundle install

执行完成后,Rails 4.1.0 就会安装到 app1 对应的项目环境中。

如果想确认当前项目使用的是哪个版本,可以执行 bundle exec rails -v。输出会是 Rails 4.1.0

接着再执行 bundle exec rails new . --force,覆盖原来的 Gemfile。这样,这个项目就会稳定运行在 4.1.0 上。

第二个项目使用不同版本

再创建第二个项目 app2,这次安装 Rails 3.2.13:

mkdir app2; cd app2;
echo "source 'https://ruby.taobao.org/'" > Gemfile
echo "gem 'rails,'3.2.13'" >> Gemfile
bundle install

同样,执行 bundle exec rails new . --force,就能生成一个基于 3.2.13 版本的应用。

多版本共存

两个版本都安装完成后,可以用 gem list --local 查看本地 gem 列表。

这时你会发现,rails 后面跟着 (4.1.0, 3.2.13)。这说明两个版本已经并存。

Bundler 会自动识别每个项目应使用的版本,保证彼此互不干扰。

必须注意:命令前要加 bundle exec

使用 Bundler 时有一个前提:执行命令时一定要加上 bundle exec 前缀。

  • bundle exec rails s
  • bundle exec rake db:create
bundle exec rails s
bundle exec rake db:create
...

如果少了这个前缀,系统可能会调用全局默认版本。一旦版本调用错误,排查起来会很麻烦。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多