gpt4 book ai didi

ruby-on-rails - 尝试使用 Capistrano 3 和 rbenv 安装 rails 应用程序

转载 作者:行者123 更新时间:2023-12-04 17:00:25 24 4
gpt4 key购买 nike

我有一个安装了 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。

我最初使用 Knife solo 在服务器上安装了 ruby​​,但似乎 capistrano 想要解决这个问题。

当我运行 cap staging deploy 时出现错误

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

文件
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'

部署文件
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

gem 环境
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

最佳答案

也被这个问题困扰了很久。 @Darmen 的回答为我指明了正确的方向:

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

set :rbenv_custom_path, '/home/deploy/.rbenv/'

请注意(可能很明显)它必须是服务器上的路径,请使用以下命令找到它:
which rbenv

(比较 https://github.com/capistrano/rbenv 的 rbenv_custom_path 语法 - 与@Darmen 的回答略有不同)

2) 在 capfile 中设置正确的 rbenv 版本,例如,
set :rbenv_ruby, '2.1.2'

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

希望有所帮助 - 花了我很长时间...... ;-)

关于ruby-on-rails - 尝试使用 Capistrano 3 和 rbenv 安装 rails 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23361546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com