题
有没有一种简单的方法,在运行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)
不隶属于 StackOverflow