Adjust ruby gem installs to use begin/rescue block for gem loading (#10539)

* Adjust ruby gem loading during install...

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

* Rebuild ruby_libversion.

Signed-off-by: Satadru Pramanik <satadru@gmail.com>

---------

Signed-off-by: Satadru Pramanik <satadru@gmail.com>
This commit is contained in:
Satadru Pramanik, DO, MPH, MEng
2024-09-29 02:16:23 -04:00
committed by GitHub
parent 92c669ae67
commit 95fff98ecc
3 changed files with 17 additions and 9 deletions

View File

@@ -63,9 +63,18 @@ class RUBY < Package
@gem_outdated = !@gem_installed && gem_installed_anyver
crewlog "preflight: @gem_name: #{@gem_name}, @gem_ver: #{@gem_ver}, @gem_outdated: #{@gem_outdated}, @gem_installed: #{@gem_installed} && @remote_gem_ver.to_s: #{Gem::Version.new(@remote_gem_ver.to_s)} == Gem::Version.new(@gem_ver): #{Gem::Version.new(@gem_ver)} && File.file?(@gem_filelist_path): #{File.file?(@gem_filelist_path)}"
if @gem_installed && Gem::Version.new(@remote_gem_ver.to_s) == Gem::Version.new(@gem_ver)
require_gem(@gem_name)
# Make sure gem is installed before trying to get files from the gem...
begin
gem @gem_name
rescue LoadError
puts " -> install #{@gem_name} gem".orange
Gem.install(@gem_name)
gem @gem_name
end
system "gem contents #{@gem_name} > #{@gem_filelist_path}" unless File.file?(@gem_filelist_path)
@install_gem = false
@device = ConvenienceFunctions.load_symbolized_json
pkg_info = @device[:installed_packages].select { |pkg| pkg[:name] == name } [0]
@install_gem = false if Gem::Version.new(version) == pkg_info[:version]
end
end