我正在部署一个使用Capistrano的Rails 3应用程序。我已经在远程服务器(以及本地)上运行了RVM,并且Bundler正在管理我所有的宝石。这里的问题:如果Bundler在非标准路径中安装宝石,我如何访问这些宝石以及它们随附的任何二进制文件?
当我部署,下面的命令是由Capistrano的运行:
bundle install --gemfile /var/www/releases/20110301225633/Gemfile --path /var/www/shared/bundle --deployment --quiet --without development test
所以,我所有的宝石都在/var/www/shared/bundle
,没关系。但是,这意味着系统路径中没有安装任何宝石(即运行gem list
不会返回任何内容),所以我不能使用任何可能与这些宝石一起提供的bin文件,包括rails
命令本身。我已经能够获得Web服务器(瘦)的唯一方法是手动gem install thin
。一旦打包完成,它就会启动Rails,包括所有必需的宝石。
那么,我如何才能访问我的正在运行的应用程序之外的那些宝石?我知道我不应该手动安装任何东西来让这个工作,但我不知道我错过了什么。我尝试过运行rvm-shell '[email protected]' -c 'thin start'
,但是我试图直接从命令行调用thin start
时遇到同样的错误:bash: thin: command not found
即使直接进入bundler的bin目录/var/www/shared/bundle/bundle/ruby/1.9.1/bin
以开始瘦也会给我带来同样的错误。
我觉得RVM应该照顾这个对我来说......也许有一个我失踪的环境变量?
感谢您的帮助!
谢谢,我只是看到这个答案之前发现这一点吧! – 2011-03-02 00:05:26