部署Ruby独立脚本和依赖项的最佳选项



对于Ruby独立脚本,Rails喜欢什么部署功能,如Gemfile/"bundle install"etc

这是假设你正在开发一个Ruby脚本,你想测试它,然后进行部署,也许可以将它交付给其他人,你会使用什么样的Rails部署方法,比如:

a) 创业板-标记创业板要求&根据需要安装它们-例如Rails"Gemfile",在其中标记您需要的宝石,然后"捆绑安装"以安装它们

b) File Require-如果*.rb文件在您的脚本目录中,则自动加载它们(我想在Rails中,如果您将类文件放在apps/model目录中,Rails会自动加载/request,这是您的文件)

取决于人们是否希望在他们找到的每台主机上使用它。还取决于该工具是否可以与公共转发共享。

如果它必须工作,而不必担心你是否已经通过bundler安装了gems,你可以在你的独立脚本中使用以下内容来安装gems(如果还没有)(注意系统与用户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'
...

在我看来,宝石是最好的选择。Bundler使入门变得容易;当你运行命令时,它会为你启动一个骨架…

bundle gem <GEM_NAME>

看一看。只要你在gem的.gemspec文件中指定了你的依赖项,并且有人安装了你的打包gem(他们不需要bundler,只需要RubyGems的gem命令),依赖项就会作为gem一起安装。

最新更新