mieki256's diary



2023/10/16(月) [n年前の日記]

#3 [ruby] gemの表示が妙なことになってしまった

Windows10 x64 22H2 + Ruby 2.3.3 p222 i386-mingw32 (RubyInstaller) で動作確認していたら、gem の表示がおかしいことに気づいた。

gem -v でバージョンを確認できるらしいのだけど…。
> gem -v
D:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:11: warning: already initialized constant Gem::VERSION
C:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:11: warning: previous definition of VERSION was here
D:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:115: warning: already initialized constant Gem::RUBYGEMS_DIR
C:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:115: warning: previous definition of RUBYGEMS_DIR was here
D:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:120: warning: already initialized constant Gem::UNTAINT
C:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:120: warning: previous definition of UNTAINT was here
D:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:123: warning: already initialized constant Gem::KERNEL_WARN_IGNORES_INTERNAL_ENTRIES
C:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:123: warning: previous definition of KERNEL_WARN_IGNORES_INTERNAL_ENTRIES was here
D:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:129: warning: already initialized constant Gem::WIN_PATTERNS
C:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:129: warning: previous definition of WIN_PATTERNS was here
D:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:138: warning: already initialized constant Gem::GEM_DEP_FILES
C:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:138: warning: previous definition of GEM_DEP_FILES was here
D:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:148: warning: already initialized constant Gem::REPOSITORY_SUBDIRECTORIES C:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:148: warning: previous definition of REPOSITORY_SUBDIRECTORIES was here
D:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:161: warning: already initialized constant Gem::REPOSITORY_DEFAULT_GEM_SUBDIRECTORIES
C:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:161: warning: previous definition of REPOSITORY_DEFAULT_GEM_SUBDIRECTORIES was here
D:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:171: warning: already initialized constant Gem::LOADED_SPECS_MUTEX
C:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:171: warning: previous definition of LOADED_SPECS_MUTEX was here
D:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:1294: warning: already initialized constant Gem::MARSHAL_SPEC_DIR
C:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems.rb:1294: warning: previous definition of MARSHAL_SPEC_DIR was here
3.3.26

Ruby 2.3.3 + gem 3.3.26 だとこんなことになってしまう…。ちなみに、gem 3.3.19 もこんな感じ。

アレ? C: と D: が混在してる。なんだコレ。元々Cドライブに入っていたものをDドライブに移動して、Cドライブにはシンボリックリンクを置いたのだけど、そのせいだろうか…。

それはともかく、gem (rubygems) を更新するには、2つ方法があるようで。
zip の入手先は以下。現行版のzipのURLから類推してみた。

_RubyGemsをダウンロード | RubyGems.org | コミュニティのgemホスティングサービス

_https://rubygems.org/rubygems/rubygems-3.2.25.zip
_https://rubygems.org/rubygems/rubygems-3.2.26.zip
_https://rubygems.org/rubygems/rubygems-3.2.27.zip
_https://rubygems.org/rubygems/rubygems-3.2.28.zip
_https://rubygems.org/rubygems/rubygems-3.2.29.zip
_https://rubygems.org/rubygems/rubygems-3.2.30.zip
_https://rubygems.org/rubygems/rubygems-3.2.33.zip
_https://rubygems.org/rubygems/rubygems-3.2.34.zip
_https://rubygems.org/rubygems/rubygems-3.3.19.zip
_https://rubygems.org/rubygems/rubygems-3.3.26.zip

また、以下の記事によると、3.1.x は問題があるらしいので、3.2.0以降にしておかないといけない模様。

_業務の中で出会った default gem のアップグレードによる CVE 対応と rubygems 3.2.0 未満の不具合の話 - STORES Product Blog

とりあえず色々なバージョンを試してみたけど、gem 3.2.26 が一番メッセージ表示が少なくて済むようだなと…。
> gem -v
D:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems/user_interaction.rb:546: warning: already initialized constant Gem::StreamUI::ThreadedDownloadReporter::MUTEX
C:/Ruby/Ruby23-x86/lib/ruby/site_ruby/2.3.0/rubygems/user_interaction.rb:546: warning: previous definition of MUTEX was here
3.2.26

シンボリックリンクがマズいっぽい :

Rubyのバージョンを切り替えられるツール、pik で、C:\Ruby\Ruby23-x86\bin を登録していたけど、実際にRuby関連ファイル群が入っている D:\Ruby\Ruby23-x86\bin を登録し直してみた。これなら変なメッセージが出てこないな…。

とりあえず、pik や uru の設定ファイルを書き換えて、C:/ や C:\\ を D:/ や D:\\ にしておこう…。

pik や uru の設定ファイルの場所は以下。
C:\Users\(USERNAME)\.pik\config.yml
C:\Users\(USERNAME)\.uru\rubies.json

以上です。

過去ログ表示

Prev - 2023/10 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project