对于Ruby独立脚本,Rails喜欢部署功能,例如Gemfile /“bundle install”等
假设您正在开发一个您想要测试然后部署的Ruby脚本,并且可能会发送给其他人,您会使用Rails之类的部署方法来说:
a)创业板 - 标记GEM要求&根据需要安装它们 - 例如Rails“Gemfile”,你标记你需要什么宝石,然后“捆绑安装”来安装它们
b)文件要求 - 如果它们在您的脚本目录中,则自动加载* .rb文件(我在Rails中考虑如果您将类文件放在apps / model目录中,Rails会自动加载/要求的文件为你)
答案 0 :(得分:4)
取决于它是否是您希望人们在他们找到的每个主机上使用的工具。还取决于该工具是否可以与公共存储库共享。
如果它只是必须工作,而不用担心你是否已经通过捆绑器安装了宝石,你可以在独立脚本中使用类似下面的东西来安装宝石(如果还没有)(注意系统)与用户ruby):
#!/usr/bin/env ruby
require 'rubygems'
def install_gem(name, version=Gem::Requirement.default)
begin
gem name, version
rescue LoadError
print "ruby gem '#{name}' not found, " <<
"would you like to install it (y/N)? : "
answer = gets
if answer[0].downcase.include? "y"
Gem.install name, version
else
exit(1)
end
end
end
# any of the following will work...
install_gem 'activesupport'
install_gem 'activesupport', '= 4.2.5'
install_gem 'activesupport', '~> 4.2.5'
require 'active_support/all'
...
答案 1 :(得分:2)
以我的拙见,宝石是要走的路。 Bundler让您轻松上手;当你运行命令时,它会为你启动一个骨架......
bundle gem <GEM_NAME>
Take a look。只要你在gem的.gemspec
文件中指定你的依赖项,并且有人安装你的打包gem(它们不需要bundle,只需要RubyGems的gem
命令),依赖项将作为gems安装。用它。