Docker の CentOS Stream 9 に man をインストールした時のメモ

先日 Docker で CentOS Stream 9 のコンテナで学習し始めたが、man コマンドを使うために man-db と man-pages をインストールした。
にもかかわらず「No manual entry for コマンド名」と出てしまう。
Gemini のいう通りに進めてみたが全然解決しなく、claude に聞いたら一発で解決した。
やっぱ claude の方が優秀?
原因とClaude の提案でやったこと
- /etc/dnf/dnf.conf に tsflags=nodocs がある場合は削除(自分の環境には記述無し)
- dnf install -y man-pages man-db(実施済み)
- dnf install -y –allowerasing coreutils(これで解決)
原因は「CentOS Stream 9 の Docker イメージは最小構成のため、man ページのデータファイルが省かれている」とのこと。
具体的には、基本コマンド群をまとめたパッケージ coreutils が、最小構成の軽量パッケージ coreutils-single に置き換えられていたことが原因だった。
通常の cureutils を –allowerasing オプションを使って上書きインストールし、無事解決できた。
–allowerasing は dnf install 時に、競合するパッケージを自動的に削除(上書き)してインストールを続行するオプション。
AlmaLinux を触っていた時にも同じ問題に遭遇していたが、原因を理解できていなかった。
今回の件でバッチリ理解できた。
dnf install -y man man-pages man-db
dnf install -y --allowerasing coreutils
mandb