FreeBSD - メンテナンス・トラブルシュート - ruby - ruby33-gems-4.0.8


クラウディア 


1. 概要
2. 状況
3. 対策
4. 参考サイト

1. 概要

 発生は、2026年4月6日です。

2. 状況

 「FreeBSD 15.0-RELEASE-p2」で、「ports」を更新していたとき。  いくつか更新が発生しているので、そのうちのひとつ「curl」を更新しようとしたら・・・。

/usr/local/lib/ruby/site_ruby/3.3/pkgtools/pkgdbtools.rb:104:in 'rescue in db_driver=': uninitialized constant PkgDBTools::DBError (NameError)

        raise DBError, "No driver is available!"
              ^^^^^^^
Did you mean?  LoadError
        from /usr/local/lib/ruby/site_ruby/3.3/pkgtools/pkgdbtools.rb:63:in 'db_driver='
        from /usr/local/lib/ruby/site_ruby/3.3/pkgtools/portsdb.rb:168:in 'setup'
        from /usr/local/lib/ruby/site_ruby/3.3/pkgtools/pkgtools.rb:242:in 'init_pkgtools_global'

・・・	略	・・・

        from /usr/local/sbin/portupgrade:238:in 'new'
        from /usr/local/sbin/portupgrade:238:in 'main'
        from /usr/local/sbin/portupgrade:2380:in '<main>'
root@nt.sing.ne.jp /root # portversion -v | grep '<'
Ignoring bigdecimal-4.0.1 because its extensions are not built. Try: gem pristine bigdecimal --version 4.0.1
Ignoring bindex-0.8.1 because its extensions are not built. Try: gem pristine bindex --version 0.8.1
Ignoring bootsnap-1.23.0 because its extensions are not built. Try: gem pristine bootsnap --version 1.23.0

・・・	略	・・・

Ignoring sqlite3-2.9.0 because its extensions are not built. Try: gem pristine sqlite3 --version 2.9.0
Ignoring stringio-3.2.0 because its extensions are not built. Try: gem pristine stringio --version 3.2.0
Ignoring websocket-driver-0.8.0 because its extensions are not built. Try: gem pristine websocket-driver --version 0.8.0
/usr/local/lib/ruby/site_ruby/3.3/pkgtools/pkgdbtools.rb:104:in 'rescue in db_driver=': uninitialized constant PkgDBTools::DBError (NameError)

        raise DBError, "No driver is available!"
              ^^^^^^^
Did you mean?  LoadError
        from /usr/local/lib/ruby/site_ruby/3.3/pkgtools/pkgdbtools.rb:63:in 'db_driver='
        from /usr/local/lib/ruby/site_ruby/3.3/pkgtools/portsdb.rb:168:in 'setup'
        from /usr/local/lib/ruby/site_ruby/3.3/pkgtools/pkgtools.rb:242:in 'init_pkgtools_global'

・・・	略	・・・

        from /usr/local/sbin/portversion:84:in 'new'
        from /usr/local/sbin/portversion:84:in 'main'
        from /usr/local/sbin/portversion:383:in '<main>'
 てな感じでエラーになります。  依存関係で、「ruby」の方も更新されたようで・・・。  「ports」のデータベースを扱っているのは、「ruby」のパッケージで。  「ruby」の更新が中途半端になってしまったようで、わけわかんなくなっちゃっているようです。

3. 対策

 とりあえず、一番影響してそうな「ports」を更新します。  以下、「root」ユーザ権限で。

cd /usr/ports/databases/rubygem-dbm

make config
 オプションは、デフォルトのままで。


make NO_DIALOG=yes

make reinstall
 これで、とりあえず、進むことはできるようになります。  一通り、更新し終えて。

portversion -v | grep '<'

Ignoring psych-5.3.1 because its extensions are not built. Try: gem pristine psych --version 5.3.1
Ignoring stringio-3.2.0 because its extensions are not built. Try: gem pristine stringio --version 3.2.0
Ignoring psych-5.3.1 because its extensions are not built. Try: gem pristine psych --version 5.3.1
Ignoring stringio-3.2.0 because its extensions are not built. Try: gem pristine stringio --version 3.2.0
[Reading data from pkg(8) ... - 580 packages found - done]
 一応、もう更新はないと言っておりますが、変なメッセージが出ておりますわな。

cd /usr/ports/textproc/rubygem-psych
 オプションはないので。

make NO_DIALOG=yes

make reinstall
 同じ要領で。

cd /usr/ports/devel/rubygem-stringio

make NO_DIALOG=yes

make reinstall
 これで。

portversion -v | grep '<'

[Reading data from pkg(8) ... - 580 packages found - done]
 やっと変なメッセージが出なくなりました。  1台のマシンは上記で終わりましたが、もう1台は、他に下記の「ports」を同様に更新する必要がありました。

/usr/ports/databases/rubygem-mysql2
/usr/ports/databases/rubygem-pg
/usr/ports/devel/rubygem-bindex
/usr/ports/devel/rubygem-bootsnap
/usr/ports/devel/rubygem-date
/usr/ports/devel/rubygem-debug
/usr/ports/devel/rubygem-etc
/usr/ports/devel/rubygem-ffi
/usr/ports/devel/rubygem-io-console
/usr/ports/devel/rubygem-msgpack
/usr/ports/devel/rubygem-nio4r
/usr/ports/devel/rubygem-racc
/usr/ports/devel/rubygem-readline-ext
/usr/ports/devel/rubygem-stringio
/usr/ports/math/rubygem-bigdecimal
/usr/ports/textproc/rubygem-commonmarker
/usr/ports/textproc/rubygem-commonmarker0
/usr/ports/textproc/rubygem-libxml-ruby
/usr/ports/textproc/rubygem-nokogiri
/usr/ports/textproc/rubygem-prism
/usr/ports/textproc/rubygem-psych
/usr/ports/textproc/rubygem-redcarpet
/usr/ports/www/rubygem-cgi
/usr/ports/www/rubygem-passenger
/usr/ports/www/rubygem-puma
/usr/ports/www/rubygem-puma6
/usr/ports/www/rubygem-websocket-driver

4. 参考サイト

 本ページは、「Gemini」伍長を参考にさせていただきました。

audiobook.jp
audiobook.jp
AbemaTV 無料体験
薬屋の独り言