【问题标题】:How to write a batch script to install ruby gem如何编写批处理脚本来安装 ruby​​ gem
【发布时间】:2016-08-10 21:05:00
【问题描述】:

我正在编写一个批处理脚本作为我正在编写的 ruby​​ 程序的设置。它需要能够

一个。确保 Ruby 已安装在用户的计算机上(如果没有将它们指向 ruby​​ 下载页面)

b.确保安装了 ruby​​ "yaml" gem,这是它的先决条件。我试过了

gem install yaml

在批处理脚本中无济于事。我怎样才能编写一个批处理脚本来完成这两件事?

【问题讨论】:

  • 您可以使用bundler 管理gem(以及相应的版本)。

标签: ruby batch-file rubygems yaml


【解决方案1】:

您可以使用bundler 并创建一个gemfile,而不是编写自己的脚本。这样人们就可以在任何操作系统上安装所有的 gem。

例子:

require 'rubygems'
require 'bundler/setup'
require 'nokogiri'
require 'rest-client'
#require all your gems like normal

def parse(site)
  Nokogiri::HTML(RestClient.get(site))
end

对于 gem 文件:

source: "https://rubygems.org"

gem 'nokogiri', '~> 1.6.7.2' #<= you can specify which version
gem 'rest-client' #<= you don't have to specify a version though

设置完所有内容后,cd 到包含 gemfile 的目录并运行 bundle install 这将安装所有 gem

【讨论】:

    【解决方案2】:

    据我所知,没有 yaml gem。尽管在使用它的代码中必须需要它,但它是作为 Ruby 安装的一部分分发的。试试这个:

    ruby -ryaml -e"puts 'YAML found'"
    

    它应该可以工作;如果您将 -r 标记更改为某个不存在的 gem,您会看到引发异常。

    【讨论】:

    • 这很好,除了我安装了 Ruby 并且正在使用 yaml,但是当我运行它时,它会向我吐出这个错误:C:\Users\kyle>ruby yaml -ryaml -e"puts 'yaml found '" ruby​​: 没有这样的文件或目录 -- yaml (LoadError)
    • 您需要删除“ruby”之后的“yaml”。 Ruby 认为这是 Ruby 脚本的文件规范,但在这种情况下,我们没有。
    • 切记不要在 yaml 文件中使用制表符
    猜你喜欢
    • 2014-10-03
    • 2010-10-20
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 2010-11-22
    • 2011-05-17
    相关资源
    最近更新 更多