FreeBSD - メンテナンス・トラブルシュート - ruby - ruby30 → ruby31

 クラウディア
1. 概要
2. バージョンの変更
3. アップグレード
4. 再インストールが必要なモジュール

1. 概要

 本記事を書いているのは、2023年3月17日です。  実は、2、3日前からこのような状況になっておるのですが。

$ pkg version -vl "<"
ruby-3.0.5_1,1                     <   needs updating (index has 3.1.3_2,1)
 ということで、実は、前回「3.0.4」以降のリリースが。  「Ruby 3.1.2 リリース」によれば、「3.1.2」のリリースが、2022年4月12日。  「Ruby 3.0.5 リリース」によれば、「3.0.5」のリリースが、2022年11月24日。  「Ruby 3.1.3 リリース」によれば、「3.1.3」のリリースが、2022年11月24日。  「Ruby 3.2.0 リリース」によれば、「3.2.0」のリリースが、2022年12月25日。  「Ruby 3.2.1 リリース」によれば、「3.2.1」のリリースが、2023年2月8日。  ということになっております。  現在のアップグレードせろ、と言われた環境が

$ ruby --version
ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c5) [amd64-freebsd13]
 ということで、とうとう「3.0.5」もサポートしなくなりますよ。  ということですな。  実は、「ports」上には、「3.2」も存在するのですが、まぁここは焦らず、「3.1」へ上げていきたいと思います。

2. バージョンの変更


$ portupgrade -f ruby30 -o lang/ruby31
[Reading data from pkg(8) ... - 377 packages found - done]

$ pkg set -o lang/ruby30:lang/ruby31
Change origin from lang/ruby30 to lang/ruby31 for ruby-3.0.5_1,1? [y/N]:
 最後の行は、y Enter を入力します。

vi /etc/make.conf

DEFAULT_VERSIONS+=ruby=3.0
 の行を下記へ変更します。

DEFAULT_VERSIONS+=ruby=3.1

3. アップグレード


cd /usr/ports/lang/ruby31
make config
 いままでの経験で、「DOCS」のオプションだけ、はずします。
「/usr/ports/lang/ruby30」-「make config」

 アップグレード。
 ここは、依存関係なし、強制アップグレードにします。


portupgrade -f ruby
 これで、「ruby」は、アップグレードできました。

4. 再インストールが必要なモジュール

 依存関係に問題が発生したりした場合は、後日、書き加えます。  てか、いきなり出ちゃったよ。  他のパッケージをアップグレードしようとしたときに、直前まで動かしていた「portupgrade」が動かないのだ。  「portupgrade」は、「ruby」に依存しているのね。  ってことで、依存の前の方からインストールやアップグレードを行っていきます。  (実際には、途中で止まって、ややこしかったんだけど)  「ruby-gems」の更新。

pkg delete ruby30-gems
 で、いったん「ruby30-gems」を削除して。

cd /usr/ports/devel/ruby-gems
make
make install
 「rubygem-rdoc」をインストール。

cd /usr/ports/devel/rubygem-rdoc
make
make install
 「portupgrade」を再インストール。

cd /usr/ports/ports-mgmt/portupgrade
make
make reinstall
 これで、やっと「portupgrade」が動作するようになりました。
ハイスピードプラン