pkg・ports アップデート関連 - その他一般 - RecursiveDependencyError


 


1. 概要
2. 現象
3. 対処
4. 参考サイト

1. 概要

 発生は、2026年10月14日。

2. 現象


portversion -v | grep '<'
 の結果。

[Reading data from pkg(8) ... - 683 packages found - done]
ffmpeg-9.0.2_1,1            <  needs updating (port has 9.0.2_2,1)
fftw3-3.3.10_5              <  needs updating (port has 3.3.11)
fftw3-float-3.3.10_5        <  needs updating (port has 3.3.11)
graphite2-1.3.15            <  needs updating (port has 1.3.15_1)
graphviz-16.1.0             <  needs updating (port has 16.1.0_1)
libdvdcss-1.5.0             <  needs updating (port has 1.6.0)
libheif-1.22.2_4            <  needs updating (port has 1.23.6)
py312-sqlite3-3.12.14_10    <  needs updating (port has 3.15.0_10)
x265-4.2                    <  needs updating (port has 4.3)
 という状態にありまして。

env BATCH=yes portupgrade -rR ffmpeg
 すると。

[Reading data from pkg(8) ... - 683 packages found - done]
[Gathering depends for multimedia/ffmpeg ............................................................................................./usr/local/sbin/portupgrade:894:in 'get_all_depends': recursive dependency (RecursiveDependencyError)
        from /usr/local/sbin/portupgrade:917:in 'block in get_all_depends'
        from /usr/local/lib/ruby/3.3/set.rb:501:in 'each_key'
        from /usr/local/lib/ruby/3.3/set.rb:501:in 'each'

		・・・	略	・・・

        from /usr/local/sbin/portupgrade:621:in 'each'
        from /usr/local/sbin/portupgrade:621:in 'block (3 levels) in main'
        from /usr/local/sbin/portupgrade:594:in 'catch'
        from /usr/local/sbin/portupgrade:594:in 'block (2 levels) in main'
        from /usr/local/lib/ruby/3.3/optparse.rb:1707:in 'block (2 levels) in parse_in_order'
        from /usr/local/lib/ruby/3.3/optparse.rb:1702:in 'catch'
        from /usr/local/lib/ruby/3.3/optparse.rb:1702:in 'block in parse_in_order'
        from /usr/local/lib/ruby/3.3/optparse.rb:1636:in 'catch'
        from /usr/local/lib/ruby/3.3/optparse.rb:1636:in 'parse_in_order'
        from /usr/local/lib/ruby/3.3/optparse.rb:1630:in 'order!'
        from /usr/local/lib/ruby/3.3/optparse.rb:1621:in 'order'
        from /usr/local/sbin/portupgrade:571:in 'block in main'
        from /usr/local/lib/ruby/3.3/optparse.rb:1153:in 'initialize'
        from /usr/local/sbin/portupgrade:238:in 'new'
        from /usr/local/sbin/portupgrade:238:in 'main'
        from /usr/local/sbin/portupgrade:2380:in '<main>'
 てなことになるのです。

3. 対処

 前項の現象は、「-rR」オプションで、依存関係を参照するときに、循環参照が発生して解決できなくなっているせいだそうで。  上記現象が、発生する「ports」については。

env BATCH=yes portupgrade ffmpeg
 と依存関係を省略して、ひとつに絞ってアップグレードすると、うまく通ります。

4. 参考サイト

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

audiobook.jp
earthcar(アースカー)
健康サポート特集
ネットオークションの相場、統計、価格比較といえばオークファン
それがだいじWi-Fi
U-NEXT
ベルリッツ
JETBOY
TikTok Shop 【リピート用プログラム】
サウンドハウス
ハイスピードプラン
Amazonギフトカード
EaseUS
【usus ウズウズ】
アフィリエイトのアクセストレード
損保との違い
葬送のフリーレン Prime Video
薬屋の独り言
5G CONNECT