2012-11-08 38 views
0

我正在设置JRuby 1.7在ubuntu vagrant box中与torquebox配合使用。我正在使用torquebox-remote-deployer gem将存档文件和应用程序部署到虚拟机。现在,当宝石试图执行bundle exec rake db:migrate,我得到以下错误:bundler:不可执行文件:rake

bundler: not executable: rake 

现在,当我在供应商/束检查/ JRuby中/ 1.9/bin目录,耙和所有其他必要的可执行文件存在。我也试着运行通过当地的JRuby捆绑命令来安装,以确保其正常调用,但我得到了相同的结果

/opt/jruby/bin/jruby -S bundle exec rake db:migrate 

有什么建议?如果您需要更多信息,请询问。

+0

那么rake文件实际上标记为可执行文件吗?不知道你如何最终在这种情况下开始,但错误消息似乎是说'耙'本身就在那里,但只是没有标记的可执行文件(+ x)​​。 – James

+0

我很确定我检查了权限,他们是rwxrxrx,但后来证实不好 – agmcleod

+0

啊,所以它看起来没有设置为可执行文件。这似乎每次我部署档案文件,权限被重新设置为读取。在我的部署脚本中添加以确保它可以正确执行。 – agmcleod

回答

4

那么rake文件是否真的标记为可执行文件?

不知道如何在这种情况下开始,但错误消息似乎是说'耙'本身在那里,但只是没有标记的可执行文件(+ x)​​。

0

这是由于jar的“bug”。

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6194856

我结束了创建用于固定权限我与torquebox调用单独的红宝石脚本:远程:EXEC [“束EXEC jruby的路径/到/脚本”]。

+0

是的,我也是这么做的。后来我在远程盒子上切换了一些东西来安装宝石,就像在Capistrano部署MRI应用时所做的那样。旋钮中的供应商捆绑的转移:部署对我来说太重了。 – agmcleod

1

如果同样的问题将是轨道脚本文件的解决方案将是:

只需更新文件权限来执行。它为我工作。

chmod 777 -R script/filename.rb 

干杯!