kledgeb UbuntuやLinuxの最新情報を紹介

Ubuntu 26.04 その62 - 明示的に GNU 版 coreutils を指定して利用するには

明示的に GNU 版 coreutils を指定して利用するには

明示的に GNU 版 coreutils を指定して利用する方法です。


coreutils-from-gnu と coreutils-from-uutils

Ubuntu 26.04 LTS では、2種類の coreutils を提供しています。

  1. Rust 版 coreutils
  2. GNU 版 coreutils

Rust 版 coreutils は coreutils-from-uutils パッケージから提供されており、Ubuntu 26.04 LTS では Rust 版 coreutils がデフォルトで採用されているため、coreutils-from-uutils パッケージがプリインストールされています。

その一方で以前 Ubuntu で採用されていた GNU 版 coreutils は、coreutils-from-gnu パッケージから提供されています。

Rust 版 coreutils と GNU 版 coreutils は同じ役割を持つソフトウェアを提供するため、そもそも共存してインストールすることはできません。

実は GNU 版 coreutils もインストールされている

実は GNU 版 coreutils もインストールされています。
GNU 版 coreutils の実行ファイルは gnu-coreutils パッケージから提供されており、Ubuntu 26.04 LTS ではこのパッケージがプリインストールされています。

つまり Ubuntu 26.04 LTS では、Rust 版 coreutils と GNU 版 coreutils の両方がプリインストールされていることになります。

コマンドによって使い分けている

さてユーザーが cp や cat など coreutils が提供するコマンドを実行した時に、Rust 版 coreutils もしくは GNU 版 coreutils のいずれかのコマンドが実行されるようになっています。
予め Ubuntu 側で coreutils のコマンドごとに、どちらが提供するコマンドを実行するのかを決めています。

cp コマンドの例

ファイルのコピーに使われる cp コマンドの例を見てみましょう。
cp コマンドのファイル情報を出力すると、以下のように cp コマンドは /usr/bin/cp へのシンボリックリンクであることが分かります。


実際に cp コマンドのバージョン情報を出力すると、以下のように GNU 版 coreutils の cp コマンドであることが分かります。


cat コマンドの例

次に、ファイルの内容を連結しその結果を標準出力に出力する cat コマンドの例を見てみましょう。
cat コマンドのファイル情報を出力すると、以下のように cat コマンドは ../lib/cargo/bin/coreutils/cat へのシンボリックリンクであることが分かります。


もうこの時点で cat コマンドは Rust 版 coreutils が使われていることが分かりますが、せっかくなので cat コマンドのバージョン情報も見てみましょう。
以下のように Rust 版 coreutils の cat コマンドであることが分かりますね。


シンボリックリンクによって使い分けている

つまり Ubuntu 26.04 LTS では、シンボリックリンクによって Rust 版 coreutils 由来のコマンドと GNU 版 coreutils 由来のコマンドを使い分けています。

そして coreutils-from-gnu パッケージは、これらのシンボリックリンクを GNU 版 coreutils を指すように変更することで、coreutils 全体を GNU 版 coreutils に変更しています。

なぜ混在しているのか

GNU 版 coreutils と Rust 版 coreutils には完全な互換性がなく、今まで動作していたスクリプトが動作しなくなったり、Rust 版 coreutils に影響の大きい不具合が残っているケースがあるためです。
とは言え、将来的に coreutils 全体が Rust 版 coreutils に移行することになるかと思います。

明示的に GNU 版 coreutils を指定して利用するには

上記でも紹介した通り Ubuntu 26.04 LTS には、GNU 版 coreutils もインストールされています。
しかし実行ファイル名が従来とは異なっており、実行ファイル名に「gnu」のプレフィックスがつけられています。

/usr/bin/gnu[
/usr/bin/gnuarch
/usr/bin/gnub2sum
/usr/bin/gnubase32
/usr/bin/gnubase64
/usr/bin/gnubasename
/usr/bin/gnubasenc
/usr/bin/gnucat
/usr/bin/gnuchcon
/usr/bin/gnuchgrp
/usr/bin/gnuchmod
/usr/bin/gnuchown
/usr/bin/gnucksum
/usr/bin/gnucomm
/usr/bin/gnucp
/usr/bin/gnucsplit
/usr/bin/gnucut
/usr/bin/gnudate
/usr/bin/gnudd
/usr/bin/gnudf
/usr/bin/gnudir
/usr/bin/gnudircolors
/usr/bin/gnudirname
/usr/bin/gnudu
/usr/bin/gnuecho
/usr/bin/gnuenv
/usr/bin/gnuexpand
/usr/bin/gnuexpr
/usr/bin/gnufactor
/usr/bin/gnufalse
/usr/bin/gnufmt
/usr/bin/gnufold
/usr/bin/gnugroups
/usr/bin/gnuhead
/usr/bin/gnuhostid
/usr/bin/gnuid
/usr/bin/gnuinstall
/usr/bin/gnujoin
/usr/bin/gnulink
/usr/bin/gnuln
/usr/bin/gnulogname
/usr/bin/gnuls
/usr/bin/gnumd5sum
/usr/bin/gnumkdir
/usr/bin/gnumkfifo
/usr/bin/gnumknod
/usr/bin/gnumktemp
/usr/bin/gnumv
/usr/bin/gnunice
/usr/bin/gnunl
/usr/bin/gnunohup
/usr/bin/gnunproc
/usr/bin/gnunumfmt
/usr/bin/gnuod
/usr/bin/gnupaste
/usr/bin/gnupathchk
/usr/bin/gnupinky
/usr/bin/gnupr
/usr/bin/gnuprintenv
/usr/bin/gnuprintf
/usr/bin/gnuptx
/usr/bin/gnupwd
/usr/bin/gnureadlink
/usr/bin/gnurealpath
/usr/bin/gnurm
/usr/bin/gnurmdir
/usr/bin/gnuruncon
/usr/bin/gnuseq
/usr/bin/gnusha1sum
/usr/bin/gnusha224sum
/usr/bin/gnusha256sum
/usr/bin/gnusha384sum
/usr/bin/gnusha512sum
/usr/bin/gnushred
/usr/bin/gnushuf
/usr/bin/gnusleep
/usr/bin/gnusort
/usr/bin/gnusplit
/usr/bin/gnustat
/usr/bin/gnustdbuf
/usr/bin/gnustty
/usr/bin/gnusum
/usr/bin/gnusync
/usr/bin/gnutac
/usr/bin/gnutail
/usr/bin/gnutee
/usr/bin/gnutest
/usr/bin/gnutimeout
/usr/bin/gnutouch
/usr/bin/gnutr
/usr/bin/gnutrue
/usr/bin/gnutruncate
/usr/bin/gnutsort
/usr/bin/gnutty
/usr/bin/gnuuname
/usr/bin/gnuunexpand
/usr/bin/gnuuniq
/usr/bin/gnuunlink
/usr/bin/gnuusers
/usr/bin/gnuvdir
/usr/bin/gnuwc
/usr/bin/gnuwho
/usr/bin/gnuwhoami
/usr/bin/gnuyes

これらのコマンドを直接指定すれば、明示的に GNU 版 coreutils を利用できます。

というわけで

さて現状はまだ残念ながら coreutils の移行期及び過渡期であり、Rust 版 coreutils の非互換や不具合による問題が相応に報告されています。
Ubuntu 26.04 LTS は長期サポート版とは言え、従来の Ubuntu LTS よりも影響の大きい変更が含まれています。

Ubuntu 26.04 LTS を利用する際は、自身が利用しているスクリプトへの影響確認や事前テストを十分に行っておきましょう。

Ubuntu
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu CPUfreq その1 - CPUfreqについて・ CPUfreqドライバーについて・ CPUfreqガバナーについて
    CPUfreq   CPUfreqは、CPUのクロック数を動的に変更する機能です。   CPUfreqを利用することで、OSの負荷に応じて動的にCPUのクロック数を調整することができます。  これにより、省電力効果を得ることができます。   CPUfreqを利用する場合...
  • Ubuntu 26.04 その42 - Ubuntu 26.04.1 LTS のリリーススケジュール
    Ubuntu 26.04.1 LTSのリリーススケジュール Ubuntu 26.04.1 LTS のリリーススケジュールを紹介します。
  • Ubuntu 24.04 その93 - Linux kernel 7.0 が利用可能に・Linux kernel 7.0 にアップグレードするには
    Linux kernel 7.0 が利用可能に 現在 Ubuntu 24.04 LTS を利用しているユーザーは、Linux kernel 7.0 へアップグレードできるようになりました。
  • Ubuntu 26.04 その59 - amdgpu ドライバーでパフォーマンス低下のお知らせ
    amdgpu ドライバーでパフォーマンス低下のお知らせ 次期 Linux kernel のアップデートで、amdgpu ドライバーのパフォーマンスが低下するお知らせが出ています。
  • Linux その407 - COSMIC DE 開発7ヶ月の歩み・COSMIC DE に搭載された新機能のまとめ
    COSMIC DE 開発7ヶ月の歩み COSMIC デスクトップ環境の開発者が、ここ7ヶ月の開発の歩みと、今までに COSMIC デスクトップ環境に搭載された新機能を紹介しています。
  • Linux その404 - COSMIC Epoch 1.3.0 リリース・ウィンドウのすりガラス効果に対応
    COSMIC Epoch 1.3.0 リリース 2026年7月15日、COSMIC Epoch 1.3.0 がリリースされました。
  • Ubuntu 26.04 その64 - AMD 環境で PC をシャットダウンできない現象
    AMD 環境で PC をシャットダウンできない現象 AMD 環境で PC をシャットダウンできない現象が報告されています。
  • Ubuntu 26.10 その18 - GRUB の機能削減とセキュリティー強化
    GRUB の機能削減とセキュリティー強化 GRUB の機能削減とセキュリティー強化が予定されています。
  • Ubuntu 24.04 その94 - Linux kernel 7.0 で nvidia-535 NVIDIA GPU ドライバーが非サポートに
    nvidia-535 NVIDIA GPU ドライバーが非サポートに Linux kernel 7.0 で nvidia-535 NVIDIA GPU ドライバーが非サポートになりました。
  • Ubuntu 26.04 その65 - ソフトウェアのアップデート通知が表示されない現象
    ソフトウェアのアップデート通知が表示されない現象 ソフトウェアのアップデート通知が表示されなくなる現象が報告されています。
記事のピックアップ
オプション