Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 正在尝试使用Capistrano 3和rbenv安装rails应用程序_Ruby On Rails_Ruby On Rails 4_Capistrano_Rbenv - Fatal编程技术网

Ruby on rails 正在尝试使用Capistrano 3和rbenv安装rails应用程序

Ruby on rails 正在尝试使用Capistrano 3和rbenv安装rails应用程序,ruby-on-rails,ruby-on-rails-4,capistrano,rbenv,Ruby On Rails,Ruby On Rails 4,Capistrano,Rbenv,我有一个安装了Ruby 2.1.1的VPS设置,同一版本在本地安装。运行14.04 Ubuntu的我的开发机器报告ruby-v=ruby 2.1.1p76(2014-02-24修订版45161)[x86_64-linux]和rbenv-v=rbenv 0.4.0-97-gfe0b243 我最初是使用刀子solo在服务器上安装ruby的,但capistrano似乎想解决这个问题 当我运行cap staging deploy时,我得到一个错误 rbenv: cap: command not foun

我有一个安装了Ruby 2.1.1的VPS设置,同一版本在本地安装。运行14.04 Ubuntu的我的开发机器报告ruby-v=ruby 2.1.1p76(2014-02-24修订版45161)[x86_64-linux]和rbenv-v=rbenv 0.4.0-97-gfe0b243

我最初是使用刀子solo在服务器上安装ruby的,但capistrano似乎想解决这个问题

当我运行cap staging deploy时,我得到一个错误

rbenv: cap: command not found
The `cap' command exists in these Ruby versions:  2.1.0
Gemfile

group :development do
 gem 'capistrano', github: 'capistrano/capistrano', ref: 'master'
 gem 'capistrano-rails', github: 'capistrano/rails', ref: 'master'
 gem 'capistrano-bundler'
 gem 'capistrano-rbenv', "~> 2.0"
end
卡普里

require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/rbenv'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
deploy.rb

set :rbenv_type, :system
set :rbenv_ruby, '2.1.1'
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"
set :rbenv_map_bins, %w{rake gem bundle ruby rails}
set :rbenv_roles, :all # default value
宝石环境

RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.2
  - RUBY VERSION: 2.1.1 (2014-02-24 patchlevel 76) [x86_64-linux]
  - INSTALLATION DIRECTORY: /home/mark/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0
  - RUBY EXECUTABLE: /home/mark/.rbenv/versions/2.1.1/bin/ruby
  - EXECUTABLE DIRECTORY: /home/mark/.rbenv/versions/2.1.1/bin
  - SPEC CACHE DIRECTORY: /home/mark/.gem/specs
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /home/mark/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0
     - /home/mark/.gem/ruby/2.1.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--no-ri --no-rdoc"
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /home/mark/.rbenv/versions/2.1.1/bin

从您的开发人员计算机上尝试以下命令:

cd /path/to/your/application/root
gem uninstall capistrano
gem uninstall capistrano-rails
gem uninstall capistrano-bundler
gem uninstall capistrano-rbenv
# select "All versions" everytimes
bundle
# Verify that all capistrano gems are installed
rbenv rehash

然后再次尝试
cap staging deploy

尝试使用Ruby 2.1.0,似乎问题是由与2.1.1的某些兼容性问题引起的


或者尝试将Capistrano更新到(如果您尚未完成)。

可能需要运行
deploy:setup\u config
,然后直接部署即可

名称空间:日志
描述“尾轨日志”
任务:尾轨怎么办
关于角色(:app)do
执行“tail-f#{shared_path}/log/#{fetch(:rails_env)}.log”
结束
结束

结束

我解决了相同的问题设置
:rbenv_路径
。 你的应该是:

set :rbenv_path, '/home/mark/.rbenv/'
我还必须设置完整的ruby版本,如下所示:

set :rbenv_ruby, '2.1.1-p76' 

他也在为这个问题挣扎了很长一段时间@达曼的回答为我指明了正确的方向:

1) 在Capfile中设置rbenv的路径。对于Capistrano 3.2.1,这是:

set :rbenv_custom_path, '/home/deploy/.rbenv/'
请注意(可能很明显),它必须是服务器上的路径,请使用以下方法查找:

which rbenv
(比较rbenv_自定义_路径语法-与@Darmen的答案略有不同)

2) 在capfile中设置正确的rbenv版本,例如

set :rbenv_ruby, '2.1.2'
对我来说,我不必使用完整的ruby版本。它必须与/.rbenv/versions中的目录名匹配


希望这会有帮助-花了我很多时间…;-)

你有没有尝试过让rbenv为capistrano生成一个二进制垫片?是的,没有任何区别。
gem'capistrano','3.2'gem'capistrano rails','1.1'
你为什么让master branchI指向某个地方去尝试。你有没有尝试过不指向master branch也没有希望?没有,相同错误rbenv:2.1.1未安装或未在/usr/local/rbenv/versions/2.1.1中找到。
rbenv versions
ls/usr/local/rbenv/versions
的输出是什么?(从应用程序根目录运行)system 2.1.0*2.1.1(由/home/mark/s/.ruby version)/usr/local/rbenv/versions设置:没有这样的文件或目录可能是
.ruby version
文件造成了问题,让我们暂时删除它
cd
进入应用程序根目录,然后
mv.ruby version.old.ruby version
然后重试原始消息中的所有命令如果我设置了该版本的ruby,capistrano会停止并向我发出警告:WARN rbenv:2.2.8未安装或未在“服务器”上的/home/unicorn/.rbenv/versions/2.2.8中找到