Ubuntu、Rust版coreutils移行完了も「rmが消せない」不具合に海外で疑問の声
姉妹サイトの新着
Ubuntuは数年かけてGNU coreutilsからRust製の「uutils coreutils」への置き換えを進めており、次期26.10(LTSではない中間リリース)でこの移行がほぼ完了した。この件を伝えた記事にHacker Newsで反応が集まり、3万2千階層という極端な深さのディレクトリを作って`rm -rf`を実行するとセグメンテーションフォルトで異常終了し、一部が削除されずに残ってしまうという実例が投稿された。この不具合自体は何年も前から報告されているとの指摘もあり、リリースを急いでいるのではという批判と、まだ正式リリース前の中間版なのだから騒ぐ話ではないという擁護論とで意見が分かれた。
Ubuntu 26.10、Rustベースのcoreutilsへの移行が完了
出典: omgubuntu.co.uk / 元記事はこちら
podmanでubuntu:26.10を起動してapt updateとupgradeをした後にrmのバージョンを確認すると『rm (uutils coreutils) 0.10.0』。3万2千個のディレクトリ(a/を32×1024個作る)を作ってから`rm -rf a`を実行すると、セグメンテーションフォルト(コアダンプ)になり、ディレクトリaは消えずに残ってしまう。GNU版のrm(gnurm)で同じ操作をすると問題なく削除できる。
急いでいるって? これはまだリリースされてもいないインターリム版だよ(LTSしか追わない人が95%くらいだろうし)。時間があるならバグ報告してきなよ。
報告済みだよ。これは何年も前からupstreamで放置されているオープンなバグでもある。
Ubuntuのリリース前にバグを報告しても、自分の経験ではうまくいったためしがない。いつも『フリーズ』と称した後に大きな変更を山ほど入れてくるくせに、フリーズを理由にフィードバックを全部無視するんだ。本当に腹立たしい。
equivsを使ってダミーのcoreutils-from-uutilsパッケージを作る手はある。そのバグ報告への返信でも触れられている。とはいえCanonicalがこれを直す気がないのは残念だ。おかげで『GNU coreutilsを使いたければ今でも使える』という彼らの主張を真に受けるのが難しくなる。
それかArchを使えばいい。無意味な熱狂の輪に加わらずに済む
皮肉で言ってるんだよね?
まずSnapを直してくれ
そう、これはバグだし直すべきだ。でもそんなに多くのユーザーに影響するとは思えない。だって3万2千階層も深いディレクトリを持ってる人なんている?
その考え方だと、いつまで経っても直らないままだよ
『Linuxの哲学は「危険を笑い飛ばせ」だ。おっと違った。「自分でやれ」だ。そう、それだ』——リーナス・トーバルズ
チケットの優先順位付けはどうすればいいと思う?
おそらくその通りだけど、最近のLinuxが向かっている方向は気になる
詳しく説明してもらえる?
1) LinusやDebianのような企業によって『スロップ』の受け入れが強制されていること。2) LinuxカーネルがAI絡みのCVEでどれだけひどい状態か見ればわかる。これからもっと悪化する。BSDこそ未来だ。
これはUbuntuについての話であってLinuxについての話ではない、ということを忘れちゃいけない。両者は動機の異なる別のプロジェクトだ。
そんなことは関係ない。UbuntuもLinuxカーネルも、LLMを使い、それを使って構築し、場合によっては使用を推奨している。
『レガシー』はちょっと厳しい言い方だ……ちなみにCanonicalは、この移行の前も最中も後も、GNU coreutilsのメンテナである自分たちに一切連絡してこなかった。知らせてくれていたら、非互換の問題について簡単に警告できたのに。
そうだね、『レガシー』と呼ぶべきじゃなかった。『OG(オリジナル)』の方が適切だったかもしれない。
『Ubuntuの開発者はFOSSに何も良いことをしていない』——『何も良いことをしていない』じゃなくて『何一つ悪いことをしていない』の間違いじゃない?
その通り、ごめんとありがとう。文章をいじってて、最初に投稿したのがしっくりこなかったから今直したよ。
『何も良いことをしていない』の方が正確だよ
面白いね……Archがだんだん気に入ってきた
それかPop!_OS。あそこはディストロを『vibeスロップ』化してない
それは気になるね、ここに投稿してくれたら(内容を確認した上で)投票するよ
他サイトの新着
自分だけじゃなかったんだと知れてよかった。Launchpadはほとんどの場合完全に無視されている気がする。彼らのGNU coreutilsの不具合パッチについて反応をもらうのに、数か月後にrust-coreutils側のバグ報告で言及する羽目になった。
GPL → MIT
カーネル自体がGPLである以上、一部のツールでこれがそこまで重要なことなのか?
問題は、まさにこの種のバグはGNU coreutilsのプロジェクト哲学上存在しないということだ。こうしたバグが存在しないこと自体が、その実装がAT&Tのコードからコピーされたものではないことの証明になる。
本来なら、あるプログラムを別の言語に移植するだけなら、チケットは一件も出ないのが理想的だったはずだ。
これは移植ではなく、元のソースコードを一切使わない再実装だ。それに起きているのはそれだけじゃない。国際化対応の改善やエラーメッセージの改善など、いくつかの機能拡張も行われている。
この話題の背景と論点
Ubuntuは24.10ごろからGNU coreutilsをRust製の「uutils coreutils」へ段階的に置き換えており、26.10(LTSではない中間リリース)でこの移行がほぼ完了した形になる。uutils coreutilsは既存コードの移植ではなく、GNU coreutilsとは別に一から書かれた再実装で、国際化対応やエラーメッセージの改善なども狙っている。スレで論点になったのは、3万2千階層という極端な条件下とはいえ`rm -rf`がセグメンテーションフォルトで異常終了し、削除しきれないディレクトリが残るという不具合が何年も前から報告済みなのに未修正である点。中間リリースは本来こうした不具合を洗い出すための場だという擁護論がある一方、Canonicalがフリーズ後に大きな変更を入れつつ既存の不具合報告を軽視しているという批判も出ている。またGNU coreutils側のメンテナには移行前に相談がなかったことや、旧版との併用を可能にするはずのパッケージ(coreutils-from-gnu)が依存関係の変更で実質使えなくなっている点も、Canonicalの説明への不信につながっている。
※本記事は5ch(Hacker News)スレッド「Ubuntu 26.10 completes transition to Rust-based coreutils」より抜粋・要約して構成しています。






まだコメントはありません。