mieki256's diary



2021/08/11(水) [n年前の日記]

#1 [ruby] Windows10上でRubyをアップデートした

Windows10 x64 21H1上に Ruby 2.6.6 x86 をインストールしてあったのだけど、気が付いたら 2.6.8 が配布されているようなのでアップデートしてみた。

_RubyInstaller for Windows
_Downloads

2.6.8 x86 の他に、2.7.4 x64 と 3.0.2 x86 もインストールしておくことにする。以下のファイルをDL。 今回は with Devkit 版をDLした。Devkit版には MSYS2 が含まれていて、C言語等で書かれた外部ライブラリもビルドして使うことができる。その代わり、それぞれ、1〜2GBほどファイル容量を食う…。

それぞれを実行してインストール。今回は以下にインストールした。
今現在の RubyInstaller は、既に Ruby がインストールされていると、インストールされている場所を自動検出してアップデートしてくれるらしい。Ruby 2.6.6 から 2.6.8 にする分には、どこにインストールするか尋ねてくることはなかった。Ruby 2.7.4 と 3.0.2 については、メジャーバージョン(?)が異なるので、インストール場所を尋ねてきた。

pik や uru に登録。 :

pik や uru を使って、Rubyの複数バージョンを共存できるようにする。pik, uru は別途インストールが必要。
pik add C:\Ruby\Ruby27-x64\bin
pik add C:\Ruby\Ruby30-x86\bin
pik list
pik 274
pik 302
uru admin add C:\Ruby\Ruby27-x64\bin --tag 27
uru admin add C:\Ruby\Ruby30-x86\bin --tag 30
uru ls
uru 27
uru 30

pik は 0.2.8 を使用。
> pik --version
pik 0.2.8
0.3.0 は、何か不具合があったような気がするけど…何だったっけ…。

_Downloads - vertiginous/pik
_Rubyアソシエーション: 複数のRuby環境の構築
_windows10 Pikを使ってRubyのバージョンを管理する | mebee

pik に何のRubyが登録されているかは、C:\Users\[USRNAME]\.pik\config.yml で記述されている。

uru は 0.8.5 を使用。
> uru version
uru v0.8.5 [windows/386 go1.10]

_jonforums / uru / ダウンロード - Bitbucket
_Windowsで異なるバージョンのRubyを使う方法(uru) - Qiita

#2 [ruby] Windows10上で Ruby 2.3.3 をインストールしようとして少しハマった

Windows10 x64 21H1 + Ruby 2.6.8 p205 x86 上で DXRuby 1.4.7 を利用しようとしたら、ogg再生ライブラリの Ayame が使えなくて…。もしかして Ruby 2.1 - 2.3 じゃないと使えないのかなと気になったので、Ruby 2.3.3 をインストールして試してみようかと。

しかし、gem が使えなくて、ちょっとハマった…。

Ruby 2.3.3 本体のインストール。 :

RubyInstaller をインストール。

_Download Archives

rubyinstaller-2.3.3.exe をDLして実行。C:\Ruby\Ruby23-x86\ にインストール。

複数バージョンの共存。 :

Widnows上で Ruby の複数のバージョンを共存させたい場合、pik や uru を別途インストールして利用する。複数バージョンを共存しない場合は、pik や uru は不要。

> pik add C:\Ruby\Ruby23-x86\bin

> pik list

  187: ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mswin32]
  233: ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]
* 268: ruby 2.6.8p205 (2021-07-07 revision 67951) [i386-mingw32]
  274: ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x64-mingw32]
  302: ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [i386-mingw32]

> pik 233

Select which Ruby you want:
1. 302: ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [i386-mingw32]
2. 233: ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]
?  2

> ruby -v

ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]

> uru admin add C:\Ruby\Ruby23-x86\bin --tag 23

> uru ls

    187         : ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mswin32]
    23          : ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]
    27          : ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x64-mingw32]
    30          : ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [i386-mingw32]
=> system      : ruby 2.6.8p205 (2021-07-07 revision 67951) [i386-mingw32]

> uru 23

---> these rubies match your `23` tag:

[1] 187         : ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mswin32]
                   Home: C:\Ruby\Ruby187p330mswin32\bin
[2] 23          : ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]
                   Home: C:\Ruby\Ruby23-x86\bin
[3] 27          : ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x64-mingw32]
                   Home: C:\Ruby\Ruby27-x64\bin
[4] 30          : ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [i386-mingw32]
                   Home: C:\Ruby\Ruby30-x86\bin

select [1]-[4] to use that specific ruby (0 to exit) [0]: 2
---> now using ruby 2.3.3-p222 tagged as `23`

> ruby -v

ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]

DevKitを入手して解凍。 :

DevKit を導入することで、C言語その他で書かれた外部ライブラリをビルドして使うことができるようになる。

DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe をDL。実行すると解凍場所を尋ねてくるので、今回は C:\Ruby\devkit200-x86\ を指定した。

ちなみに、Ruby のバージョンによって利用する DevKit は異なる。
  • Ruby 1.8.7 - 1.9.x : DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe をインストール。
  • Ruby 2.0.0 x86 以降 : DevKit-mingw64-32-4.7.2-20130224-1151-sfx.exe をインストール。
  • Ruby 2.0.0 x64 以降 : DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe をインストール。
  • Ruby 2.4.4-1以降 : Ruby+Devkit Installers という版を使えば DevKit も一緒にインストールしてくれる。

DevKit をインストール。 :

以下を参考にして作業。

_Rubyをインストール/アップデートするには?(Windows編) - Build Insider

DOS窓を管理者権限で開いて、DevKit を解凍した場所に移動。
cd /d C:\Ruby\devkit200-x86

Ruby の複数バージョンを利用している場合は、Ruby 2.3.3 に切り替える。
pik 233
or
uru 23

DevKit を適用するための設定ファイルを作成。
> ruby dk.rb init

[INFO] found RubyInstaller v2.6.8 at C:/Ruby/Ruby26-x86
[INFO] found RubyInstaller v2.7.4 at C:/Ruby/Ruby27-x64
[INFO] found RubyInstaller v3.0.2 at C:/Ruby/Ruby30-x86
[INFO] found RubyInstaller v2.3.3 at C:/Ruby/Ruby23-x86

Initialization complete! Please review and modify the auto-generated
'config.yml' file to ensure it contains the root directories to all
of the installed Rubies you want enhanced by the DevKit.

2.3.3以外にも、2.6.8, 2.7.4, 3.0.2 も対象になってしまっている。2.3.3 以外は除外したい。

C:\Ruby\devkit200-x86\config.yml を編集。2.3.3 以外の行を削除。

正しく編集できたか確認。
> ruby dk.rb review

Based upon the settings in the 'config.yml' file generated
from running 'ruby dk.rb init' and any of your customizations,
DevKit functionality will be injected into the following Rubies
when you run 'ruby dk.rb install'.

C:/Ruby/Ruby23-x86

DevKit をインストール。
> ruby dk.rb install
[INFO] Updating convenience notice gem override for 'C:/Ruby/Ruby23-x86'
[INFO] Installing 'C:/Ruby/Ruby23-x86/lib/ruby/site_ruby/devkit.rb'

gemを更新。 :

gem (rubygems) を使うと、Ruby の外部ライブラリ/パッケージをインターネット経由でインストールすることができる。

しかし、Ruby 2.3.3 をインストールしたばかりの状態では、gem の利用時にエラーが出る。
> gem install dxruby
ERROR:  Could not find a valid gem 'dxruby' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=error: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)

_Windows環境でgemがSSLエラー 2016 - Qiita

Rubygems をアップデートしないといかんらしい…。

> gem -v
2.5.2

_Download RubyGems | RubyGems.org | コミュニティのGemホスティングサービス
_SSL Certificate Update - RubyGems Guides
_GemとSSLに関するトラブルについて

rubygems-3.2.25.zip をDLして解凍。フォルダの中に入って、ruby setup.rb を実行。

> gem -v
3.2.25

rubygems を更新できた。この状態なら gem install hoge が使える。

DXRubyをインストール。 :

DXRuby は、Windows + Ruby の環境でDirectXを利用できるようになる、2Dゲーム制作用のライブラリ。

DXRuby 1.4.6 なら、Ruby 2.3 用のバイナリも含まれているので、gem でバージョンを指定してインストール。
pik 233
gem install dxruby -v "1.4.6"

これで DXRuby が使えるようになった。

ただ、Windows10上では、DircetX9関係のDLLを別途インストールしないと使えないらしい。以下の記事がそのあたり説明してくれている。ありがたや。

_DXRuby 1.4.6 をWindows10で使う時の注意点とインストール方法 - Qiita
_DXRuby 1.4.7 でエラーになった時の対処法とインストール方法 - Qiita

自分の環境では、C:\Windows\System32\D3DX9_40.dll, C:\Windows\SysWOW64\D3DX9_40.dll が既に入ってた。

Ayameの動作確認。 :

DXRuby はそのままだと、サウンドファイルについてはMIDIかwavしか再生できない。Ayame/Ruby を利用することで oggファイルの再生もできるようになる。

以下で Ayame/Ruby が入手できる。

_Home - mirichi/dxruby-doc Wiki

ayameruby004-mswin32-ruby23.zip をDLして解凍。中に、Ayame.dll、ayame.so、sample1.rb 等が入ってる。ruby sample1.rb を実行すれば、oggファイルの再生ができるかどうか確認できる。

とりあえず、Windows10 x64 21H1 + Ruby 2.3.3 x86 + DXRuby 1.4.6 + Ayame/Ruby 0.0.4 で、oggを再生できることは確認できた。

Ruby 2.6.8 その他で使うためには、ayame.so をビルドし直さないといかんのだろうか…。

一応、昔、ayame.so のビルドに挑戦していた時期があったらしいのだけど…。

_mieki256's diary - Windows版Rubyの拡張ライブラリをビルドする方法が分からない
_mieki256's diary - ayame.soをビルドしようとしてハマり中
_mieki256's diary - ayame.soのビルドでまだハマり中
_mieki256's diary - dllからMinGW用のライブラリファイルを作成
_mieki256's diary - Visual C++ で Windows版RubyのC拡張ライブラリがビルドできるか実験

昔の自分は一体何をやっていたのか、読み返しても分からん…。

以上、1 日分です。

過去ログ表示

Prev - 2021/08 - 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