- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我在我的服务器上使用系统范围的 Ruby 安装,并尝试部署到 RVM gemset(比如 rvm use 1.9.2@gemset_name)
当我运行我的 Cap 文件时,Cap 呕吐并说没有安装 Ruby。
但是,实际上安装了 Ruby。 (部署用户是 rvm 组的一部分,可以在命令行上手动 rvm use
。)
我可能做错了什么?
$:.unshift(File.expand_path('./lib', ENV['rvm_path'])) # Add RVM's lib directory to the load path.
require "bundler/capistrano"
require "rvm/capistrano"
require "erb"
set(:rvm_type) { :system }
set(:ruby_version) { '1.9.2' }
set(:rvm_ruby_string) { "#{ruby_version}@#{application}" }
set(:rvm_path) { "/usr/local/rvm" }
#set(:rvm_bin_path) { "#{rvm_path}/bin" }
before "deploy:setup", "rvm:debug_gemset"
before "deploy:setup", "bundle:install_gem"
namespace :rvm do
desc "Creates gemset for application"
task :debug_gemset do
disable_rvm_shell do
run "/usr/local/rvm/bin/rvm list rubies" do |ch, stream, data|
if stream == :err
logger.debug "capured output on STDERR: #{data}"
else # stream == :out
logger.debug "capured output on STDOUT: #{data}"
end
end
end
end
end
# We need this so that we can install rvm first!
def disable_rvm_shell(&block)
default_shell = self[:default_shell]
self[:default_shell] = nil
yield
self[:default_shell] = default_shell
end
* executing `deploy:setup'
triggering before callbacks for `deploy:setup'
* executing `rvm:debug_gemset'
* executing "/usr/local/rvm/bin/rvm list rubies" # <----- ran outside of rvm-shell
servers: ["XX.XXX.XXX.XXX"]
Password:
[XX.XXX.XXX.XXX] executing command
* capured output on STDOUT:
* capured output on STDOUT: rvm rubies
* capured output on STDOUT:
* ruby-1.8.7-p352 [ x86_64 ]
* capured output on STDOUT:
* ree-1.8.7-2011.03 [ x86_64 ]
* capured output on STDOUT:
* ruby-1.9.2-p290 [ x86_64 ]
*
好的,太棒了:1.9.2 已安装。 (这是意料之中的 - 我手动安装了 1.8.7、REE 和 1.9.2!)
但这并不是 Capistrano 所说的全部...
command finished
* executing `bundle:install_gem'
* executing "gem install bundler"
servers: ["XX.XXX.XXX.XXX"]
[XX.XXX.XXX.XXX] executing command
** [out ::XX.XXX.XXX.XXX] WARN: ruby ruby-1.9.2-p290 is not installed.
最后一行声称 1.9.2 未安装?!!
** [out ::XX.XXX.XXX.XXX] To install do: 'rvm install ruby-1.9.2-p290'
*** [err ::XX.XXX.XXX.XXX] ERROR: Gemset 'MY_APP' does not exist, rvm gemset create 'MY_APP' first.
*** [err ::XX.XXX.XXX.XXX] Error: RVM was unable to use '1.9.2@MY_APP'
command finished
failed: "rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell '1.9.2@MY_APP' -c 'gem install bundler'" on XX.XXX.XXX.XXX
Jim Gay 问道,“用 cap shell 调试怎么样?”
rvm/capinstrano
通过 rvm-shell
运行命令,它会在执行命令之前立即查找版本和 gemset。 (因此我们之前定义的 disable_rvm_shell
用于执行初始 rvm list rubies
。
例如:
cap> which rvm
[establishing connection(s) to XX.XXX.XXX.XX]
Password:
** [out :: XX.XXX.XXX.XX] WARN: ruby ruby-1.9.2-p290 is not installed.
** [out :: XX.XXX.XXX.XX] To install do: 'rvm install ruby-1.9.2-p290'
*** [err :: XX.XXX.XXX.XX] ERROR: Gemset 'MY_APP' does not exist, rvm gemset create 'MY_APP' first.
*** [err :: XX.XXX.XXX.XX] Error: RVM was unable to use '1.9.2@MY_APP'
error: failed: "rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell '1.9.2@MY_APP' -c 'which rvm'" on XX.XXX.XXX.XX
我显然做错了什么,但是什么?
将 1.9.2 设置为默认的 Ruby 不是一个选项,因为我还将在这个盒子上托管一个 1.8.7 应用程序(理想情况下)。这就是我一开始在系统级使用 RVM 的原因)。
根据 RVM 文档,我还确保部署用户在 RVM 组中。
最佳答案
关于未安装 ruby 的警告是误导性消息,它应该说找不到 ruby@gemset 对。如果您要在服务器上使用此命令:
rvm use 1.9.2@MY_APP
您会以相反的顺序看到消息 - 第一个错误是找不到 gemset,要解决它请转到服务器并运行:
rvm --create use 1.9.2@MY_APP
这将为您创建一个 gemset,如果您需要更多帮助,请联系 FreeNode 服务器上的 IRC channel #rvm。
关于ruby-on-rails - Capistrano 部署到系统范围的 RVM 看不到已安装的 Rubies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6949014/
我一直在尝试处理一个类项目,在该项目中我必须设置一个面向 GUI 的转换程序,并且我试图将数据从我的类的方法传递到 ActionListener,但监听器是告诉我文本字段不存在。它位于同一个包和类中,
我在服务器上有两个版本的 PHP(Centos 6.8) - 5.6 和 7.1 我的 Nginx 使用 php7.1,它不是默认的 PHP 解释器。 经过一番与 yum 的斗争后,我安装了 php7
我正在尝试为 BEAGLE 安装 OpenCL .首先,我下载了 intel_sdk_for_opencl_applications_2020.3.494.tar.gz 来自 here .然后我解压并
我想知道为什么我在 controlPanel 中看不到 topPanel 这是我的代码: import java.awt.BorderLayout; import java.awt.Color; im
在我的 urls.py 中,我有以下内容: urlpatterns = patterns('', # Examples: #url(r'^$', 'welcome_page.home'
非常感谢大家的帮助! 在 GetProductByID 下,我收到一条错误消息“int does not contain a definition for FirstOrDefault”。 using
1) 我已经通过 my computuer -> System variables; 设置了变量 CLASSPATH 2) 重新启动控制台并键入 echo %CLASSPATH%,CLASSPATH
我已经看过这篇文章了PHP doesn't see mysql extension ,但这对我没有帮助。 我使用: Windows Seven(在虚拟机中为 32 位,在真实电脑上为 64 位) 带
当我尝试通过输入 python3 来验证 Python3 是否可以看到 Django 时其次是 import django进入终端(这样我就可以打印 Django 的版本号),我得到以下错误: Tra
我已经使用 easy_install 安装了 pygraphviz但是当我启动 python 时出现错误: >>>import pygraphviz as pgv Traceback (most re
在向 Microsoft 报告之前,我想在这里问一下。我有一个问题,我无法看到我的 WinUI 3 应用程序的实时可视化树。我什至看不到应用程序内工具栏。我可以在 WPF 和 UWP 应用程序中看到,
我对缺乏基本的了解和 内。 我希望看到 39 个 svg 子元素,100 像素高,每个子元素中都有清晰的文本。 http://jsfiddle.net/pn5sj8ge/ 最佳答案 发生这种情况的原因
我正在尝试设置一个新的持续集成服务器,该服务器利用 Phing 和 PHPUnit 自动运行测试用例。 我已经用 Pear 安装了 Phing: pear channel-discover pear.
lua -e "print(package.path)" ./?.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua;/usr/lib
我刚刚从 https://github.com/llvm/llvm-project.git 安装了 clang++ 和 libc++ .尝试运行时: clang main.cpp -stdlib=li
我一直在使用 Highstock 图表,我注意到当图表中有很多点时,无法使用工具提示查看最后一个点: 您可以看到工具提示显示了 5 月 9 日的点,而还有一个显示 5 月 10 日的点(正如您在范围选
This question already has answers here: error_log message is truncated when using print_r (5个答案) 1年前
我在编写 Selenium 测试来检查我的应用程序时遇到问题。我想测试的是,当用户输入正确的登录名/密码时,会显示正确的页面并且用户已登录。 主要问题是我的登录表单是作为 AngularJS 指令生成
我正在尝试在 Azure 服务上发布我的 ASP.NET Core 应用程序。这有效,但是当我尝试使用应用程序功能时,我收到消息 Your App Service app is up and runn
在我的 ionic 应用程序中,我有一个功能,用户应该在应用程序的导航栏中看到水平点线,单击它们,然后应该出现一个弹出菜单,其中包含两个菜单项(添加到收藏夹并添加评论)。下图说明了我的观点。 问题是这
我是一名优秀的程序员,十分优秀!