如何从ruby脚本中安装rubygem并在之后需要这个gem?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从ruby脚本中安装rubygem并在之后需要这个gem?相关的知识,希望对你有一定的参考价值。

我想做这样的事情:

begin
  require 'progressbar'
rescue LoadError => e
  puts "exception .. installing with gem"
  h = system 'gem install progressbar'
  puts "gem installed #{h}"
  require 'progressbar'
end
pbar = ProgressBar.new("test", 100)
100.times {sleep(0.1); pbar.inc}; pbar.finish

但很明显,如果您运行此代码段,则进度条宝石不可用。

答案

我发现了这个讨论:https://www.ruby-forum.com/topic/131346显然,调用Gem.clear_paths解决了这个问题。总共:

begin
  require 'progressbar'
rescue LoadError => e
  puts "exception .. installing gem"
  h = system 'gem install progressbar'
  puts "gem installed #{h}"
  Gem.clear_paths
  require 'progressbar'
end
pbar = ProgressBar.new("test", 100)
100.times {sleep(0.1); pbar.inc}; pbar.finish

以上是关于如何从ruby脚本中安装rubygem并在之后需要这个gem?的主要内容,如果未能解决你的问题,请参考以下文章

无法在ruby 1.8.7-p374中安装宝石

安装 ruby​​gems 时出现 SSL 错误,无法从“https://rubygems.org/”中提取数据

如何在AWS Lambda函数中安装/使用ruby gems?

无法在 Windows 中安装 Nokogiri for Ruby

在雪豹中安装 mysql 失败

在 chef lwrp 中安装、要求和使用 ruby​​ 库