- 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」伍長を参考にさせていただきました。
|