Rubyスクリプト内でインストールしたGemを使用する
インストール直後はロードできない
Rubyスクリプト内でGemをインストールして直後にロードしようとしてもLoadError
になる。
sh "gem", "install", "--no-document", "bundler"
require "bundler"
# => in `require': cannot load such file -- minitest (LoadError)
読み込みパスをクリアするとロードできるようになる
Gem.clear_paths
で読み込みパスをクリアするとロードできるようになる。
begin
require "bundler"
rescue LoadError
sh "gem", "install", "--no-document", "bundler"
Gem.clear_paths
retry
end
バージョンを指定することもできる
gem
メソッドを使用すればバージョンも指定してロードできる。
begin
gem "bundler", "2.4.5"
rescue Gem:::MissingSpecError
sh "gem", "install", "--no-document", "bundler", "-v", "2.4.5"
Gem.clear_paths
retry
end