部署 一个机器部署两个 app

aisensiy · 2013年07月14日 · 最后由 aisensiy 回复于 2013年07月30日 · 3698 次阅读

两个各自用 capistrano 部署一个 rails 项目在同一台机器上。在部署第二个的时候 cap deploy:cold 的时候报错

An error occurred while installing mysql2 (0.3.11), and Bundler cannot continue.
 ** [out :: ali2] 
 ** [out :: ali2] Make sure that `gem install mysql2 -v '0.3.11'` succeeds before bundling.

可是第一个 rails 项目就用到了 mysql2 0.3.11 这会儿怎么安装都是问题了。

用 rvm 了吗?如果用了 rvm 可以试试 gemset 能不能解决你的问题

有可能是 mysql lib 没有安装好

http://ruby-china.org/topics/3059

#3 楼 @cxh116 可我之前已经有一个 rails 项目在这个 server 上跑着了,同样是使用 mysql

就是说我这种情况一定要给每个 app 提供独立的 gem 才行?

一个可能是 rbenv 没设好,在你的新项目中没有用到 rbenv 对应的 gems,第二个可能是两个项目的 ruby version 不同,第三个可能是 capistrano 会对你的 gem 做 cache,然后放在 shaerd 目录下,这种情况下应该是要另外安装 gem 的(我不确定第三种可能是否为真,现在手边没电脑也验证不了)

不过楼主应该可以试试在你的服务器上直接跑失败的 cap 命令看看

我也在寻找这个方法

#8 楼 @gemer 我搞定了 在 nginx 和 unicorn 的配置方面注意下就可以了。没有别的问题。

#7 楼 @leomao10 不是你说的问题 不过谢谢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号