9月16日、Phoronixが「Ubuntu 26.10 Moves cp, mv & rm Over To Rust Coreutils For 100% Transition」と題した記事を公開した。Ubuntu 26.10においてcp・mv・rmの3コマンドがRust製実装に切り替わり、Rust Coreutilsへの移行が100%完了したことが明らかになった。
Linuxユーザーが毎日のように叩くこの3コマンドが、静かにRust実装へ置き換わる。それも、ある日突然ではなく、互換性の問題を1つずつ丁寧に潰した末の「満を持しての」移行だ。Ubuntu 26.10のドラフトリリースノートには移行状況として「**100%**」と明記されており、長期にわたる段階的な移行プロセスがここに完結した。
Ubuntu 25.10から進めてきた段階的な移行
UbuntuはUbuntu 25.10から、伝統的なGNU Coreutilsの代替としてuutils/coreutilsの採用を開始した。uutils/coreutilsはRustで書かれたGNU Coreutils互換の再実装プロジェクトで、メモリ安全性の向上を主な目標に掲げている。
GNU CoreutilsはC言語で実装されており、バッファオーバーフローやメモリ破壊といった脆弱性クラスのリスクを構造上排除しきれない。Rustの所有権モデルを採用することで、これらの問題をコンパイル時に原理的に取り除けるのが最大の利点だ。また、uutils/coreutilsはクロスプラットフォーム対応も進んでおり、Linux以外の環境での動作にも力を入れているプロジェクトでもある。
Ubuntu 25.10の段階ですでに多くのコマンドが移行済みだったが、cp・mv・rmの3つはGNU実装との互換性問題が残っており、移行が見送られていた。なお、長期サポート版であるUbuntu 24.04 LTSについても、安定性を優先する方針から同様に移行は見送られている。LTS版は5年以上にわたって企業・サーバー環境で使われ続けることもあり、互換性リスクに対してより保守的な判断が求められる。
なぜcp・mv・rmが最後まで残ったのか
cp・mv・rmは、Unixシステムの中でも最も利用頻度が高く、かつ挙動の細部に依存するスクリプトや運用ツールが多いコマンドだ。オプションの組み合わせや特定条件下での挙動がGNU実装と少しでもずれれば、既存のシェルスクリプトや自動化処理が予期せず壊れるリスクがある。そのため、他のコマンドよりも慎重な検証が求められ、移行が後回しになっていた。
この互換性の課題はuutils/coreutilsのアップストリームで解決が進み、Ubuntu 26.10でついに移行が完了した。プロジェクトのGitHubリポジトリでは各コマンドの互換性マトリクスも公開されており、どのオプション・機能がGNU実装と同等かを確認できる。
Ubuntu 26.10のリリースと今後の展望
Ubuntu 26.10は2026年10月リリース予定の通常サポート版(非LTS)だ。LTSではないものの、今回の移行は将来のLTS版であるUbuntu 28.04 LTSに向けた重要な実績作りという側面も大きい。通常版での実運用を通じて互換性の問題を洗い出し、LTSとして広く普及させるための地ならしという位置づけだ。
Linuxカーネル本体でもRustが公式サポートされ、低レイヤーコンポーネントのRust化はエコシステム全体に広がりつつある。その中でもUbuntuの今回の移行は、「誰もが毎日使うコアコマンド」という象徴的な領域でRustが本番採用されたという意味で、ひとつの節目だ。Phoronixのコメント欄でも互換性への懸念と期待が入り混じった反応が見られ、コミュニティの関心の高さをうかがわせる。
詳細はUbuntu 26.10 Moves cp, mv & rm Over To Rust Coreutils For 100% Transitionを参照していただきたい。