在脚本中安装了一个gem后,如何加载这个gem?[英] After installing a gem within a script, how do I load the gem?

本文是小编为大家收集整理的关于在脚本中安装了一个gem后,如何加载这个gem?的处理方法,想解了在脚本中安装了一个gem后,如何加载这个gem?的问题怎么解决?在脚本中安装了一个gem后,如何加载这个gem?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在编写一个小型 Rub​​y 脚本,用于在本地机器上自动准备开发环境.因为我不能确定 rubyzip2 库是否存在于所有机器上,所以我让脚本在需要时安装它.

目前,我的脚本正在执行以下操作:

begin
  require 'zip/zip'
rescue LoadError
  system("gem install rubyzip2")
end

gem 安装完成后,脚本继续执行;但是,gem 尚未加载,因此所有需要 rubyzip2 的代码都会停止执行.

如何将 gem 加载到内存中,以便脚本在安装后可以继续运行?

推荐答案

使用 bundler 版本高于 1.10(更新只需运行 gem install bundler),您就可以使用其新的"内联"功能,如 这里.

require 'bundler/inline'

gemfile(true) do
  source 'https://rubygems.org'
  gem 'catpix'
end

puts Catpix::VERSION

gemfile方法的第一个参数是是否应该安装用户系统上尚未安装的gem.

本文地址:https://www.itbaoku.cn/post/786454.html