【发布时间】:2014-01-19 01:48:52
【问题描述】:
多年来,我一直使用 RVM 作为我的 Ruby 版本管理器,但为了简单起见,我想改用 rbenv。但是我在部署时发现了一些奇怪的问题。这似乎是错误的地方:
# env RBENV_ROOT=\"/home/deploy/.rbenv\" PATH=\"/home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:$PATH\" /home/deploy/.rbenv/bin/rbenv exec bundle install --gemfile /domains/myapp.com/releases/20140119013611/Gemfile --path /domains/myapp.com/shared/bundle --deployment --without development test
> rbenv: bundle: command not found
> The `bundle' command exists in these Ruby versions:
> 2.0.0-p353
好的,所以我指定我想要的 rbenv 版本 --
# env RBENV_ROOT=\"/home/deploy/.rbenv\" PATH=\"/home/deploy/.rbenv/shims:/home/deploy/.rbenv/bin:$PATH\" RBENV_VERSION=\"2.0.0-p353\" /home/deploy/.rbenv/bin/rbenv exec bundle install --gemfile /domains/myapp.com/releases/20140119013611/Gemfile --path /domains/myapp.com/shared/bundle --deployment --without development test
> rbenv: version `"2.0.0-p353"' is not installed
嗯。这很奇怪。
# rbenv versions
> system
> * 2.0.0-p353 (set by /home/deploy/.rbenv/version)
知道我哪里出错了吗? bundle install 命令似乎认为2.0.0-p353 不存在,但rbenv versions 显示了它。可能会发生什么?
【问题讨论】:
-
顺便问一下,这是部署到服务器上吗?
-
@sethcall 是的,是的。我试图在以“部署”用户身份登录到我的服务器时在命令行执行此操作,因为我的 Capistrano 部署不起作用。
-
我想这是 capistrano 做事的方式......只是我真的很讨厌使用 RVM 或 rbenv 下载 + 编译 ruby 到我的服务器,更喜欢使用 debian:github.com/sethcall/ubuntu-ruby-package-builder。主要是因为它具有可重复性、速度更快且不易出现这些棘手的环境问题。 rbenv 比 rvm 更直接用于服务器部署,不过......
标签: ruby-on-rails ruby capistrano bundler rbenv