当我的Hoster迁移服务器时,我正在努力解决我的Capistrano安装问题:
Capistrano3 deploy fails after migrating the server
我遇到过的一件事,曾经在旧机器上工作得很好,现在看起来很麻烦是捆绑器:
我可以通过Capistrano成功运行bundler:
cap staging bundler:install
这导致服务器上的以下命令
/usr/bin/env bundle install --binstubs \
/var/www/mydomain.com/subdomains/dev/shared/bin \
--path /var/www/mydomain.com/subdomains/dev/shared/bundle \
--without development test \
--deployment
但是现在当我运行我的服务器cap staging deploy:start_passenger
时会产生以下结果:
/usr/bin/env passenger start --socket tmp/passenger.socket -e staging -d
然后我的日志文件中出现错误,Rake丢失了:
Could not find rake-10.2.2 in any of the sources (Bundler::GemNotFound)
<pre> /var/www/mydomain.com/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/spec_set.rb:92:in `block in materialize'
非常奇怪的是,ruby版本2.1.2
(我真正使用的版本)在我的项目中显示2.1.0. I have no visible reference to
2.1.0`,而我的Gemfile包含:
ruby '2.1.2'
由于RBENV在服务器上使用,我可以运行rbenv versions
,它显示我:
system
* 2.1.2 (set by /var/www/mydomain.com/.rbenv/version)
那么奇怪的2.1.0
来自哪里,如何确保我的服务器具有所需的所有依赖项。
答案 0 :(得分:0)
我终于设法在新服务器上部署我的应用程序。
这些步骤是必需的。然而,由于我与它斗争了几个小时,其中一些可能是多余的:
gem install bundler && rbenv rehash
:这是必需的,因为bundler
是我在Rails App上下文中 依赖的之一的宝石。gem install passenger && rbenv rehash
我必须确保创建了当前的符号链接,因此我将其添加到deploy.rb
after 'deploy:set_current_revision', 'deploy:symlink:release'
我不得不删除一些共享目录:
rm -fr bin
rm -fr shared/bundle/
rm -fr bundle