mieki256's diary



2023/10/19(木) [n年前の日記]

#2 [ruby] Ruby 1.9.3 x86 でruby-gtk2を動かしてみたい

Windows10 x64 22H2上の Ruby 1.9.3 x86 で、gtk2(Ruby/GTK2, ruby-gtk2) を動かせるのか気になったので、動作するバージョンがどれなのか試して確認してみた。

手元で試した限りでは、Windows10 x64 22H2 + Ruby 1.9.3 x86 で利用できる gtk2関連パッケージの最終バージョンは 2.0.0 以下に見えた。これより上のバージョンでは動かない。また、インストールする順番も重要。cairo, glib2, pango, atk, gdk_pixbuf2, gtk2 の順でインストールすること。


> gem list | grep -E "cairo|atk|glib2|pango|gdk_pixbuf2|gtk2"
atk (2.0.0 x86-mingw32)
cairo (1.12.4 x86-mingw32)
gdk_pixbuf2 (2.0.0 x86-mingw32)
glib2 (2.0.0 x86-mingw32)
gtk2 (2.0.0 x86-mingw32)
pango (2.0.0 x86-mingw32)

Ruby 1.9.3 x86上では、cairo 1.12.4 までは動くが、cairo 1.12.5以上は動かないので、そのことで他のパッケージの依存関係的に制限が出てきて、gtk2 2.0.0 より上のバージョンは選べなくなる。

_mieki256's diary - cairo + Ruby Windows版が使えない

更に、gem を使ってネットワーク経由でインストールすると、最後の gtk2 のインストール時に、--platform=x86-mingw32 を指定していても、何故かソース(?)をダウンロードしてビルドが始まってしまう。
gem install gtk2 -v=2.0.0 --platform=x86-mingw32

ビルドを回避するには、必要になる gemファイルを全部Webブラウザ等で別途ダウンロードして、ローカルからインストールしたほうが良さそう。
gem install -l cairo-1.12.4-x86-mingw32.gem
gem install -l glib2-2.0.0-x86-mingw32.gem
gem install -l pango-2.0.0-x86-mingw32.gem
gem install -l atk-2.0.0-x86-mingw32.gem
gem install -l gdk_pixbuf2-2.0.0-x86-mingw32.gem
gem install -l gtk2-2.0.0-x86-mingw32.gem

ちなみに、Rubygemsサイトの各ページの、「ダウンロード」をクリックすれば、.gem がダウンロードできる。

_glib2 | RubyGems.org | コミュニティのgemホスティングサービス
_pango | RubyGems.org | コミュニティのgemホスティングサービス
_atk | RubyGems.org | コミュニティのgemホスティングサービス
_gdk_pixbuf2 | RubyGems.org | コミュニティのgemホスティングサービス
_gtk2 | RubyGems.org | コミュニティのgemホスティングサービス

余談。各パッケージのバージョンが 1.2.6 でも動くことを確認した。2.x.x 以降は対応する Ruby のバージョンが引き上げられたりしていたので、gtk2関連パッケージの内部でも何か大きな変化があったのかもしれない。だとすると、1.2.x系を利用したほうがまだ安定して動く可能性もある…?

ただ、glib2 1.2.2 は gem内の構成がバグっていて、修正した 1.2.3 を出したという話もあったので、1.2.3 以降を利用したほうがいいのかもしれない。

_Thread: [ruby-gnome2-devel-ja] Windowsへのinstallでエラー | Ruby-GNOME 2

exe化について :

Ruby 1.9.3 x86上では、ocra 1.3.10 なら使える。ocra 1.3.11 はエラーを出して動かない。
gem install ocra -v=1.3.10
ocra 01_hellogtk2.rb

ruby-gtk2 を使ったRubyスクリプトも、ocra 1.3.10 を使えばexe化できるが、スクリプト内に日本語文字列(UTF-8文字列)が入っていると、そこでエラーが出て処理が止まってしまった。ただ、ファイルの最初のあたりに以下の指定があればexe化できる時もある模様。
# -*- mode: ruby; coding: utf-8 -*-

とりあえず、Ruby 1.9.3 x86 + ruby-gtk2 2.0.0 を使えば exe化できる可能性もある、と分かった。とはいえ、Ruby 1.9 まで戻って使うというのも…。なんだかな。

以上です。

過去ログ表示

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