我对红宝石很新,所以请帮助我。 我在我的机器上安装了两个ruby版本,一个在/ usr / bin / ruby,另一个安装在/usr/local/bin/ruby中。当我尝试运行任何捆绑命令时,如“/ usr / local / bin / bundle exec”它无法找到相应的ruby和rake gems。我的环境$ PATH变量是“/ sbin:/ bin:/ usr / sbin:/ usr / bin:/ opt / aws / bin:/ usr / local / bin”,但是当我运行“/ usr / local / bin / bundle env”时,我得到了以下输出 环境
Bundler 1.10.6
Rubygems 1.8.28
Ruby 2.2.5p319 (2016-04-26 revision 0) [x86_64-linux]
Git 2.7.4
的Gemfile
# Passenger Version Gemfile
source "https://rubygems.org"
# gem "rails"
gem 'rack', '1.6.4'
gem 'passenger', '~> 4.0.59'
Gemfile.lock的
GEM
remote: https://rubygems.org/
specs:
daemon_controller (1.2.0)
passenger (4.0.60)
daemon_controller (>= 1.2.0)
rack
rake (>= 0.8.1)
rack (1.6.4)
rake (11.3.0)
PLATFORMS
ruby
DEPENDENCIES
passenger (~> 4.0.59)
rack (= 1.6.4)
BUNDLED WITH
1.10.6
但我的bundle exec命令无法找到rake或ruby版本。我什么都错过了?
答案 0 :(得分:0)
Ruby,bundler和gem都需要一组一致的路径和环境变量来定位各种脚本,binstub,gemsets和可执行文件。 RVM和rbenv解决了为每个版本设置此问题的问题。如果您有决心,可以自己设置环境,但是您需要了解这些版本管理员的作者在编写代码时学到了什么。我使用rbenv,文档可以很好地描述rbenv在为每个已安装的ruby维护一致环境时所做的工作。
答案 1 :(得分:0)
Bundler是一个gem,它安装在一个ruby版本下。
使用Rbenv或RVM管理机器中的多个ruby版本。