Capistrano Ruby安全错误

时间:2013-02-21 23:46:03

标签: ruby debian capistrano rbenv

Capistrano在此命令中出错了

  * executing "cd -- /home/root/apps/case/releases/20130221234114 && bundle exec 
rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile && cp -- 
/home/root/apps/case/shared/assets/manifest.yml
/home/root/apps/case/releases/20130221234114/assets_manifest.yml"

我得到了这个回复

** [out :: 108.60.137.195] ruby
** [out :: 108.60.137.195] :
** [out :: 108.60.137.195] no -I allowed while running setgid
** [out :: 108.60.137.195] (
** [out :: 108.60.137.195] SecurityError
** [out :: 108.60.137.195] )

似乎找不到任何相关的东西,除了在macports上编译Ruby的几个问题。我在Debian 6上使用rbenv和Ruby 1.9.3-p385。

1 个答案:

答案 0 :(得分:1)

是rbenv的共享(系统范​​围)安装吗?旧指令(截至目前已从wiki中删除,但可在https://github.com/sstephenson/rbenv/wiki/Shared-install-of-rbenv/a86ef2e6b12254eeb7cecfd3bd878cf7382d1b4a处访问)建议在Ruby解释器上设置SGID权限位,这会触发安全警告(并且有充分的理由)。

当前的rbenv文档建议安装项目本地安装(https://github.com/sstephenson/rbenv/wiki/Deploying-with-rbenv)。或者,它可以使用没有SGID的系统范围安装,并使用--deployment标志用于bundler,以便它不会尝试写入系统范围的目录。