2026/02/21(土) [n年前の日記]
#1 [ruby] Ruby 3.4.8 x64をWindows11にインストール
Windows11 x64 25H2上で、Ruby 3.4.8 64bit(x64) をインストールした。Rubyinstaller版を利用させてもらうことにする。
今までは DXRuby を動かしたくて x86版を選んでたけど、ちょっとそのあたりの事情が変わってきそうなので今回は素直にx64版を選んでみた。
_RubyInstaller for Windows
_Downloads
rubyinstaller-devkit-3.4.8-1-x64.exe を入手して実行。
最初のダイアログで、2つの選択肢が出てくる。
後者を選ぶと、管理者権限で開いたコマンドプロンプト上じゃなければ gem install 等ができなくなる…。ここは前者を選んだほうがいい…。最初、後者を選んでしまって、gem がさっぱりインストールできないと悩んでしまった…。
今回は D:\Ruby\Ruby34-x64\ にインストールした。
一通りインストールが終わるとMSYS2関係のインストールだか初期設定だかが実行されるけれど、特に数値を選ばなくてもEnterキーを叩いていくだけで最低限のインストールはされるらしい。
今までは DXRuby を動かしたくて x86版を選んでたけど、ちょっとそのあたりの事情が変わってきそうなので今回は素直にx64版を選んでみた。
_RubyInstaller for Windows
_Downloads
rubyinstaller-devkit-3.4.8-1-x64.exe を入手して実行。
最初のダイアログで、2つの選択肢が出てくる。
- Install for me only (recommended) : 自分のみにインストール(推奨)
- Install for all users : 全てのユーザにインストール
後者を選ぶと、管理者権限で開いたコマンドプロンプト上じゃなければ gem install 等ができなくなる…。ここは前者を選んだほうがいい…。最初、後者を選んでしまって、gem がさっぱりインストールできないと悩んでしまった…。
今回は D:\Ruby\Ruby34-x64\ にインストールした。
一通りインストールが終わるとMSYS2関係のインストールだか初期設定だかが実行されるけれど、特に数値を選ばなくてもEnterキーを叩いていくだけで最低限のインストールはされるらしい。
◎ gemをインストール :
Microsoft Visual Studio Code (VSCode)で ruby-lsp なる拡張を利用すると、Rubyに対する支援機能が使えるらしいので、以下の gem をインストールしておいた。
_Ruby LSP - Visual Studio Marketplace
たぶん要らないものも入ってる。何を入れたら ruby-lsp が動くのか分からなかったので…。本来なら自動でインストールしてくれるらしいのだけど、よく分からないエラーメッセージが次々に表示されてしまって…。あらかじめ手動でインストールしておいたほうがいいのかなと…。
VSCode で.rb を開くと、右下のほうに「{ } Ruby」と表示されるけど、「{ }」の部分をクリックすると現在の状態が表示されて、LSPとやらが実際に動いてるかどうかが分かるっぽい。
しばらく待ってると動き始める感じもするけれど、もし動いてなかったら、VSCodeのコマンドパレット(Ctrl + Shift + P)で、「Ruby LSP: Start」や「Ruby LSP: Restart」をしないといけないかもしれない。このあたり使い方がよく分かってない…。
余談。この ruby-lsp を提供してる Shopify って、RubyGems乗っ取り事件で名前が出てきたところだろうか…?
閑話休題。ちなみに…。
rubygems のアップデートは以下。
rubocop syntax_tree rufo rubyfmt ruby-lsp
_Ruby LSP - Visual Studio Marketplace
たぶん要らないものも入ってる。何を入れたら ruby-lsp が動くのか分からなかったので…。本来なら自動でインストールしてくれるらしいのだけど、よく分からないエラーメッセージが次々に表示されてしまって…。あらかじめ手動でインストールしておいたほうがいいのかなと…。
VSCode で.rb を開くと、右下のほうに「{ } Ruby」と表示されるけど、「{ }」の部分をクリックすると現在の状態が表示されて、LSPとやらが実際に動いてるかどうかが分かるっぽい。
しばらく待ってると動き始める感じもするけれど、もし動いてなかったら、VSCodeのコマンドパレット(Ctrl + Shift + P)で、「Ruby LSP: Start」や「Ruby LSP: Restart」をしないといけないかもしれない。このあたり使い方がよく分かってない…。
余談。この ruby-lsp を提供してる Shopify って、RubyGems乗っ取り事件で名前が出てきたところだろうか…?
閑話休題。ちなみに…。
- どんな gem が入っているかは gem list で見れる。
- ">" を使えばファイルに保存することもできる。
- Perlを使ってバージョン表記無しのリストを保存することもできる。…これ Ruby でもできないか?
gem list gem list | perl -pe "s/ \(.+\)//" gem list > 20260220_ruby348.txt gem list | perl -pe "s/ \(.+\)//" > 20260220_ruby348_no_versions.txt
rubygems のアップデートは以下。
gem update --system
◎ pikとuruに登録 :
異なるバージョンのRubyを切り替えて利用できる pik と uru にも登録しておいた。
_vertiginous/pik: Ruby version manager for Windows
_jonforums / uru - Bitbucket
今確認してみたら、pik の実行バイナリを配布してたページが404になってるな…。uru を使えということなんだろう…。
_vertiginous/pik: Ruby version manager for Windows
_jonforums / uru - Bitbucket
pik add D:\Ruby\Ruby34-x64\bin uru admin add D:\Ruby\Ruby34-x64\bin --tag 348
今確認してみたら、pik の実行バイナリを配布してたページが404になってるな…。uru を使えということなんだろう…。
◎ irbでエラーが出る :
Windows11 x64 25H2 + Ruby 3.4.8 x64 上で irb を実行しようとしたらエラーが出た。
"~/.irbrc" の記述が問題だった…。以下が書かれてた。
_Ruby 3.2と3.3のirb historyの扱いの違いと対処方法 (2025-02-11) | あーありがち
Rubyのバージョンによって、件のファイルはその場所に存在してなかったりするらしい。
以下のように書き換えてみた。
これでエラーが出なくなった。
AI(Google Gemini)によると、今のirbは昔と違って補完機能も色付け機能もデフォルトで有効になってるらしい。昔の ~/.irbrc はそのまま使わないほうがいいのかもしれないな…。
> irb Error loading RC file 'D:\home2\mieki256/.irbrc': <internal:D:/Ruby/Ruby34-x64/lib/ruby/site_ruby/3.4.0/rubygems/core_ext/kernel_require.rb>:139:in 'Kernel#require': cannot load such file -- irb/ext/save-history (LoadError)
"~/.irbrc" の記述が問題だった…。以下が書かれてた。
require "irb/ext/save-history"
_Ruby 3.2と3.3のirb historyの扱いの違いと対処方法 (2025-02-11) | あーありがち
Rubyのバージョンによって、件のファイルはその場所に存在してなかったりするらしい。
以下のように書き換えてみた。
begin require "irb/ext/save-history" rescue LoadError end IRB.conf[:SAVE_HISTORY] = 1000
これでエラーが出なくなった。
AI(Google Gemini)によると、今のirbは昔と違って補完機能も色付け機能もデフォルトで有効になってるらしい。昔の ~/.irbrc はそのまま使わないほうがいいのかもしれないな…。
[ ツッコむ ]
#2 [ruby] DXRuby 64bit版があるらしい
DXRuby という、Windows上でRubyを使って2Dゲームを作れるライブラリがあるのだけど、64bit版Rubyに対応させた DXRuby (DXRuby64)があるらしいと知った。
_dxruby64 | RubyGems.org | コミュニティのgemホスティングサービス
_spoolkitamura/dxruby64
_dxruby64/README-ja.md at main - spoolkitamura/dxruby64
_DXRubyの64bit対応版|rbCanvas
_MP3の再生もできるようになったDXRuby64の Soundクラス|rbCanvas
_DXRuby64でOGGファイルの再生にも対応|rbCanvas
素晴らしい…。Windows11 x64 25H2 + Ruby 3.4.8 x64(64bit) 上でインストールしてみた。
DXRuby の動作には d3dx9_40.dll が必要になる。入手方法と置き場所は以下のページで解説されている。
_dxruby64/README-ja.md at main - spoolkitamura/dxruby64
Ruby 3.4.8 x64上で動いてくれた。素晴らしい…。
サウンド関係は仕様が変わっているらしいのでそのあたりのチェックはしていないけれど、表示関係は手元のスクリプトがそのまま動いてくれた。
_dxruby64 | RubyGems.org | コミュニティのgemホスティングサービス
_spoolkitamura/dxruby64
_dxruby64/README-ja.md at main - spoolkitamura/dxruby64
_DXRubyの64bit対応版|rbCanvas
_MP3の再生もできるようになったDXRuby64の Soundクラス|rbCanvas
_DXRuby64でOGGファイルの再生にも対応|rbCanvas
素晴らしい…。Windows11 x64 25H2 + Ruby 3.4.8 x64(64bit) 上でインストールしてみた。
gem install dxruby64
DXRuby の動作には d3dx9_40.dll が必要になる。入手方法と置き場所は以下のページで解説されている。
_dxruby64/README-ja.md at main - spoolkitamura/dxruby64
Ruby 3.4.8 x64上で動いてくれた。素晴らしい…。
サウンド関係は仕様が変わっているらしいのでそのあたりのチェックはしていないけれど、表示関係は手元のスクリプトがそのまま動いてくれた。
[ ツッコむ ]
#3 [ruby] ruby-gtk4/ruby-gtk3をRuby 3.4.8 x64にインストール
Windows11 x64 25H2 + Ruby 3.4.8 x64 (Rubyinstaller版)で、gtk4 (ruby-gtk4) がインストールできそうか試してみた。
_gtk4 | RubyGems.org | コミュニティのgemホスティングサービス
_ruby-gnome/ruby-gnome: A set of bindings for the GNOME libraries to use from Ruby.
_gtk4 | RubyGems.org | コミュニティのgemホスティングサービス
_ruby-gnome/ruby-gnome: A set of bindings for the GNOME libraries to use from Ruby.
◎ Ruby 2.3.8 x64にインストール :
gtk4 は、以下のパッケージが必要になる模様。
gtk4 4.3.5 をインストールできたっぽい?
> gem install gtk4 Fetching gobject-introspection-4.3.5.gem Fetching glib2-4.3.5.gem Fetching graphene1-4.3.5.gem Fetching cairo-1.18.4.gem Fetching gdk_pixbuf2-4.3.5.gem Fetching gio2-4.3.5.gem Fetching cairo-gobject-4.3.5.gem Fetching pango-4.3.5.gem Fetching atk-4.3.5.gem Fetching gtk4-4.3.5.gem Fetching gdk4-4.3.5.gem Fetching gsk4-4.3.5.gem ... Done installing documentation for glib2, gobject-introspection, graphene1, cairo, cairo-gobject, pango, gio2, gdk_pixbuf2, gdk4, gsk4, atk, gtk4 after 7 seconds 12 gems installed
gtk4 4.3.5 をインストールできたっぽい?
◎ サンプル :
ruby-gtk4 を使ったサンプルをAI(Google Gemini)に提示して貰った。Hello World と表示しつつ、ボタンをクリックしたらメッセージダイアログを表示する。動いてくれた。
01_hello_gtk4.rb
01_hello_gtk4.rb
require "gtk4"
application = Gtk::Application.new("jp.example.hello", :default_flags)
application.signal_connect "activate" do |app|
window = Gtk::ApplicationWindow.new(app)
window.set_title("Ruby GTK4 Sample")
window.set_default_size(300, 200)
box = Gtk::Box.new(:vertical, 10)
box.set_margin_top(20)
box.set_margin_bottom(20)
box.set_margin_start(20)
box.set_margin_end(20)
label = Gtk::Label.new("Hello World")
box.append(label)
label2 = Gtk::Label.new("Use : ruby-gtk4")
box.append(label2)
button = Gtk::Button.new(label: "Push me")
button.signal_connect "clicked" do
dialog = Gtk::MessageDialog.new(
parent: window,
flags: :modal,
type: :info,
buttons: :ok,
message: "Hello",
)
dialog.signal_connect("response") { dialog.destroy }
dialog.show
end
box.append(button)
window.set_child(box)
window.present
end
puts "Starting GTK4 Application..."
application.run([$0] + ARGV)
◎ rub-gtk3のインストール :
Windows11 x64 25H2 + Ruby 3.4.8 x64 (Rubyinstaller版)に、ruby-gtk3 (gtk3) をインストールしてみた。
_gtk3 | RubyGems.org | コミュニティのgemホスティングサービス
gtk4 をインストールしてから、直後に gtk3 をインストールした。必要なパッケージは gtk4 の段階でインストールされたように見える。
gtk3 4.3.5 がインストールされた。手元にあったサンプルも動いてくれた。
ただ、Ruby 3.4.8 x64 (64bit版)ではなく、Ruby 3.4.8 x86 (32bit版) でインストールを試した時はエラーが出まくった…。x64版なら上手く行くのかもしれない。
_gtk3 | RubyGems.org | コミュニティのgemホスティングサービス
gtk4 をインストールしてから、直後に gtk3 をインストールした。必要なパッケージは gtk4 の段階でインストールされたように見える。
> gem install gtk4 > gem install gtk3 Fetching gtk3-4.3.5.gem Fetching gdk3-4.3.5.gem Temporarily enhancing PATH for MSYS/MINGW... Installing required msys2 packages: mingw-w64-ucrt-x86_64-gtk3 Building native extensions. This could take a while... Successfully installed gdk3-4.3.5 Building native extensions. This could take a while... Successfully installed gtk3-4.3.5 Parsing documentation for gdk3-4.3.5 Installing ri documentation for gdk3-4.3.5 Parsing documentation for gtk3-4.3.5 Installing ri documentation for gtk3-4.3.5 Done installing documentation for gdk3, gtk3 after 1 seconds 2 gems installed
gtk3 4.3.5 がインストールされた。手元にあったサンプルも動いてくれた。
ただ、Ruby 3.4.8 x64 (64bit版)ではなく、Ruby 3.4.8 x86 (32bit版) でインストールを試した時はエラーが出まくった…。x64版なら上手く行くのかもしれない。
[ ツッコむ ]
#4 [ruby] ruby-tkをRuby 3.4.8にインストール
Windows11 x64 25H2 + Ruby 3.4.8 x64 (Rubyinstaller版) に、tk (ruby-tk) をインストールしてみた。
結論を先に書いておくけど、以下でインストールすればいいかもしれない。
結論を先に書いておくけど、以下でインストールすればいいかもしれない。
gem install tk -- --with-cflags="--std=c17"
◎ インストールで試行錯誤 :
まずは素直に以下を打ってみたけれど。
ビルド時にエラーが出てしまってダメだった…。tcltklib.o を作れないと言ってるな…。
_tcltklib.c build issue with Windows 11 + MSYS2 (RubyInstaller) - Issue #72 - ruby/tk
Ruby 3.4.5 の時点でもエラーが出てビルドできなかったっぽい。
試しに MSYS2上で Ruby 3.4.8 をインストールして gem install tk をしてみたけど、別のエラーが出てビルドできなかった。MSYS2上ですらインストールできないのか…。
Cコンパイラに、CFLAGS="--std=c17" を渡してやれ、という話があるな…。
_Compatibility issues with Ruby 3.4.7 - Issue #74 - ruby/tk
むむ? これならビルドが通ったっぽい?
手元にあったサンプルを動かしてみたら、Hello World的なサンプルなら動いてくれた。
> gem install tk
Fetching tk-0.5.1.gem
Temporarily enhancing PATH for MSYS/MINGW...
Using msys2 packages: mingw-w64-ucrt-x86_64-tk
Building native extensions. This could take a while...
ERROR: Error installing tk:
ERROR: Failed to build gem native extension.
current directory: D:/Ruby/Ruby34-x64/lib/ruby/gems/3.4.0/gems/tk-0.5.1/ext/tk
...
make: *** [Makefile:252: tcltklib.o] エラー 1
make failed, exit code 2
Gem files will remain installed in D:/Ruby/Ruby34-x64/lib/ruby/gems/3.4.0/gems/tk-0.5.1 for inspection.
Results logged to D:/Ruby/Ruby34-x64/lib/ruby/gems/3.4.0/extensions/x64-mingw-ucrt/3.4.0/tk-0.5.1/gem_make.out
ビルド時にエラーが出てしまってダメだった…。tcltklib.o を作れないと言ってるな…。
_tcltklib.c build issue with Windows 11 + MSYS2 (RubyInstaller) - Issue #72 - ruby/tk
Ruby 3.4.5 の時点でもエラーが出てビルドできなかったっぽい。
試しに MSYS2上で Ruby 3.4.8 をインストールして gem install tk をしてみたけど、別のエラーが出てビルドできなかった。MSYS2上ですらインストールできないのか…。
Cコンパイラに、CFLAGS="--std=c17" を渡してやれ、という話があるな…。
_Compatibility issues with Ruby 3.4.7 - Issue #74 - ruby/tk
gem install tk -- --with-cflags="--std=c17"
むむ? これならビルドが通ったっぽい?
手元にあったサンプルを動かしてみたら、Hello World的なサンプルなら動いてくれた。
◎ 余談。RubyでGUIアプリは鬼門 :
一応インストールできたけど…。Ruby/Tk で何かを作るということは、自分の場合はまず無いのだよな…。
Tkを使って何かしらを作りたいなら Python + tkinter で作るほうが良い。絶対にPythonを選んだほうが良い。
Python は tkinter が標準で同梱されてるから、Rubyのようにこんな初っ端で無意味に悩まなくて済む。しかも Python ならユーザ数も解説記事も圧倒的に多いからググってコピペしてれば大体なんとかなる。
Ruby/Tkに限らず、Ruby でGUIアプリを作ろうとすると軽く地獄を見るから止めたほうがいい…。遊びや暇潰しなら止めないけど…。
特にストレージの圧迫具合がちょっと…。
それらと比べると、Ruby製GUIアプリを動作させるための2.76GBというファイルサイズは桁違いに大き過ぎる。
そもそもRubyInstallerに同梱されてるMSYS2(DevKit)の中には Python が入ってるので…。だったら最初からPython使えよ!
そんなわけで、LL(Lightweight Language、軽量プログラミング言語)でちょっとしたGUIアプリを作りたいなら Python + tkinter のほうが絶対に良いです。exe化もできるし。
まあ、これはあくまで Windows上の話で…。gtk等があらかじめ入っていて各アプリが共用してるLinux上ならこんなギャグレベルの状態にはならないのだろうなと…。
Ruby で Qt を使えるようにした方も「もうRubyなんて使わずにPythonを使いましょうね」って言っちゃってるし…。
_ryanmelt/qtbindings: An easy to install gem version of the Ruby bindings to Qt
Tkを使って何かしらを作りたいなら Python + tkinter で作るほうが良い。絶対にPythonを選んだほうが良い。
Python は tkinter が標準で同梱されてるから、Rubyのようにこんな初っ端で無意味に悩まなくて済む。しかも Python ならユーザ数も解説記事も圧倒的に多いからググってコピペしてれば大体なんとかなる。
Ruby/Tkに限らず、Ruby でGUIアプリを作ろうとすると軽く地獄を見るから止めたほうがいい…。遊びや暇潰しなら止めないけど…。
- 今動いたとしてもRuby本体のバージョンアップが早いので、サードパーティ製GUIライブラリがRuby本体のバージョンアップに対応できず、下手すると1年後にはそのRubyスクリプトが現行バージョンで動かなくなる。
- ruby-gtk3/gtk4 はexe化できないので、作ったGUIアプリを他のPCに持っていって使うことが難しい。
- 他のPCでもそのGUIアプリを動かせるように RubyInstaller + gtk3/gtk4をインストールすると、全部で2.76GBほどになる。
特にストレージの圧迫具合がちょっと…。
- Delphi や LazarusでGUIアプリを作れば数MBのexeで済む。
- golang で作ったexeでも十数MBで済む。
- C#で作って.NETランタイム込みにしたとしてもせいぜい100MBを超えるぐらい。
それらと比べると、Ruby製GUIアプリを動作させるための2.76GBというファイルサイズは桁違いに大き過ぎる。
そもそもRubyInstallerに同梱されてるMSYS2(DevKit)の中には Python が入ってるので…。だったら最初からPython使えよ!
そんなわけで、LL(Lightweight Language、軽量プログラミング言語)でちょっとしたGUIアプリを作りたいなら Python + tkinter のほうが絶対に良いです。exe化もできるし。
まあ、これはあくまで Windows上の話で…。gtk等があらかじめ入っていて各アプリが共用してるLinux上ならこんなギャグレベルの状態にはならないのだろうなと…。
Ruby で Qt を使えるようにした方も「もうRubyなんて使わずにPythonを使いましょうね」って言っちゃってるし…。
_ryanmelt/qtbindings: An easy to install gem version of the Ruby bindings to Qt
[ ツッコむ ]
以上、1 日分です。