我在这里看到了以下问题:
然而,这些都没有帮助我。
如何在使用rvm时定义在capistrano上的任务中使用的正确rake?代码很简单:
task :precompile_production_assets do
on roles(:all) do |host|
execute("cd #{fetch(:deploy_to)}/current && rake -T")
end
end
此命令返回:
DEBUG [bae8f8f7] Command: cd /home/rails/current && rake -T
DEBUG [bae8f8f7] bash: /usr/local/bin/rake: /usr/bin/ruby1.8: bad interpreter: No such file or directory
我的设置和一些宝石是:
看起来rake是从不同的地方打来的,但我不知道如何解决它。
在deploy.rb上我按照https://github.com/capistrano/rvm/中的说明设置了set :rvm_ruby_version, '2.2.0project'
,并在我的Capfile上注释了
require 'capistrano/rvm'
require 'capistrano/bundler'
execute("cd #{fetch(:deploy_to)}/current && rake -T")
execute("cd #{fetch(:deploy_to)}/current && bundle exec rake -T")
给我回复:
DEBUG [bae8f8f7] bash: /usr/local/bin/rake: /usr/bin/ruby1.8: bad interpreter: No such file or directory
execute(:rake, 'assets:precompile', 'RAILS_ENV=production')
给我回复:
DEBUG [b4457b08] Command: /usr/local/rvm/bin/rvm 2.2.0@project do bundle exec rake assets:precompile RAILS_ENV=production
DEBUG [b4457b08] Could not locate Gemfile or .bundle/ directory
在这种模式下,rake没问题,但正在另一个地方执行,我希望它在/ home / rails / current上。使用这种不同的语法,我不知道如何cd location && rake sometask
答案 0 :(得分:1)
我想将此作为评论发布,但由于声誉不佳,我只能发帖回答。此外,由于某种原因,我的格式未被应用。
在deploy.rb中你真的有:
set :rvm_ruby_version, '2.2.0project'
或者你在这里输入错误并在deploy.rb中将其更正为:
set :rvm_ruby_version, '2.2.0@project'
如果没有看到deploy.rb文件的内容或了解您的系统配置,我只能提供以下可能的修复:
如果所有其他方法都失败了,您可以随时尝试:
set :rvm_custom_path '~/your/ruby/path'