Matz を囲んで雪すごいですねえという話をしてから、引き続き AI Agent なんだかんだの話。
https://github.com/nurse/mrake
成瀬さんが Codex だけを使って、mruby で GNU Make 互換のバイナリを作ってみたら、 ruby/ruby を make all までできたという話。別の話で C コンパイラを AI Agent だけで作れましたという話もあり、正解があるなら Agent は便利だねえという話などをしていた。
ちょっと前に yhonda さんから相談されたタイトル通りのものをせっせとデバッグしていた。
https://github.com/ruby/rubygems/issues/9284
まとめると bundle install すると
Run bundle install --jobs 4 --retry 3
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...
Fetching date 3.5.1
Fetching erb 6.0.1
...
Installing stringio 3.2.0 with native extensions
Bundler cannot reinstall erb-6.0.1 because there's a previous installation of it
at /opt/hostedtoolcache/Ruby/4.0.1/x64/lib/ruby/gems/4.0.0/gems/erb-6.0.1 that
is unsafe to remove.
The parent of
/opt/hostedtoolcache/Ruby/4.0.1/x64/lib/ruby/gems/4.0.0/gems/erb-6.0.1 is
world-writable and does not have the sticky bit set, making it insecure to
remove due to potential vulnerabilities.
Please change the permissions of
/opt/hostedtoolcache/Ruby/4.0.1/x64/lib/ruby/gems/4.0.0/gems or choose a
different install path.
というようなエラーが出て止まるというもの。default gems を明示的に依存関係として指定している gem を入れようとした時に上書きインストールできなくて死んでしまうのが原因である。
で、なんでこんなことになってるのというと、ruby や rubygems でこんな変更を入れた記憶はないので setup-ruby か Actions じゃないの、とあたりをつけて調べていくと setup-ruby は runner image と同じバージョンがあればそっちを使うとなっているらしく、それならと runner image の状況をひたすらインスペクトしたら Ubuntu の新しいバージョンだけ "#{Gem.default_dir}/gems" が 777 になっているというのが原因だった。
https://github.com/actions/runner-images/issues/13647
upstream に報告したら、すぐに返事が来て ACL のが〜という話だったので Azure とデプロイスクリプトのなんだかんだなのだろうなということで引き続き進行中。
この症状に遭遇した人は以下のどっちかの方法でなんとかしのいでください。
ほんとなにもしてないのにソフトウェアが壊れるもだし、何かをしても壊れるのでソフトウェア開発はただただしんどい。
上のやつとか他の件を延々と調べていてちょっとだけ参加。
https://asakusarb.esa.io/posts/1286
yhonda さんに、 bundle install できないのはこの辺が原因ぽいということを伝えてから、他のパッチをこねたりして時間切れ。お疲れ様でした。