有没有一种简单的方法,在运行Ruby脚本时,得到它的自动安装脚本所需的宝石?

例如,考虑这些要求在一个红宝石脚本顶部语句:

require 'net/http'
require 'fileutils'
require 'archive/zip'

现在,我知道(如人类和程序员),对于此脚本使用Ruby某台PC上运行,在“创业板安装归档压缩”命令需要先运行之前,该脚本将正常工作。但是,如果这个脚本需要几十个人电脑上运行,还有什么可以拯救我有,以确保所有的宝石依赖关系第一次安装?

此外,如果什么也有需要多个宝石?

有帮助吗?

解决方案

不知道这是否是你是什么之后,但是当我有一台服务器设置了我多么希望我甩我的宝石的列表,以安全的地方...

gem list > my_gems.txt

如果我需要重建框或建立另一台机器我使用这个脚本安装宝石...

bulk_gems.rb
#! /usr/local/bin/ruby

STDIN.readlines.each do |l|
 m = l.match /^(\S+) \((.*)\)/
 unless m.nil?
   gem_name, versions = m[1], m[2].split(',')
   versions.each do |v|
     system "gem install #{gem_name} --version #{v} --ignore-dependencies"
   end
 end
end

more my_gems.txt | bulk_gems.rb

其他提示

通过使用 gem unpack 可以解压宝石到目录中。从那里,你可以将它们包含在你的脚本。例如,随机挑选宝石morse(编码/解码莫尔斯电码宝石),比方说我用gem unpack morse把它放在一个目录/宝石/。然后解压缩的目录莫尔斯0.0.2,因为这是版本。

$LOAD_PATH << './gems/morse-0.0.2/lib'
require 'morse'
# The gem is included, and Morse is now defined.

鞋有这样做的真正光滑的方式。看到这个博客文章由_why

您可能端口一些该标准红宝石(不花式UI)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top