FreeBSD - メンテナンス・トラブルシュート - ruby - ruby30 → ruby31
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」のオプションだけ、はずします。
$ pkg version -vl "<" ruby-3.0.5_1,1 < needs updating (index has 3.1.3_2,1)
$ ruby --version ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c5) [amd64-freebsd13]
$ 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]:
vi /etc/make.conf
DEFAULT_VERSIONS+=ruby=3.0
DEFAULT_VERSIONS+=ruby=3.1
cd /usr/ports/lang/ruby31 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」が動作するようになりました。
portupgrade -f ruby
pkg delete ruby30-gems
cd /usr/ports/devel/ruby-gems make make install
cd /usr/ports/devel/rubygem-rdoc make make install
cd /usr/ports/ports-mgmt/portupgrade make make reinstall