man は ~/.local/share/man/ でマニュアルページを検索しません。

man は ~/.local/share/man/ でマニュアルページを検索しません。

Ubuntu 20.04の以前のインストールでは、man通常のパスに加えてホームフォルダの場所も検索されました。たとえば、私はしばしばマニュアルページを介してRustをインストールしました。XDG_/home/naftuli/.local/share/man/man?/*

rsync -av ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/share/man/man1/ \
    ~/.local/share/man/man1/

私は現在Ubuntu 22.04(デフォルトのOS 7.0)を使用しており、同じことをしましたが見つかりませんmanでした。

$ man cargo
No manual entry for cargo

/etc/manpath.config20.04と22.04をアップロードしました。この時点まで、その違いは重要ではないようです。

diff --git a/manpath.config-20.04 b/etc/manpath.config
index a3e2255..e1747a2 100644
--- a/manpath.config-20.04
+++ b/etc/manpath.config
@@ -109,7 +109,7 @@ MANDB_MAP   /snap/man               /var/cache/man/snap
 # particular order. Sections with extensions should usually be adjacent to
 # their main section (e.g. "1 1mh 8 ...").
 #
-SECTION                1 n l 8 3 2 3posix 3pm 3perl 3am 5 4 9 6 7
+SECTION                1 n l 8 3 0 2 3posix 3pm 3perl 3am 5 4 9 6 7
 #
 #---------------------------------------------------------
 # Range of terminal widths permitted when displaying cat pages. If the
@@ -129,4 +129,4 @@ SECTION             1 n l 8 3 2 3posix 3pm 3perl 3am 5 4 9 6 7
 #---------------------------------------------------------
 # Flags.
 # NOCACHE keeps man from creating cat pages.
-#NOCACHE
\ No newline at end of file
+#NOCACHE

欠落している可能性がある他の設定はありますか? 20.04でman動作させるために特別な作業を行う必要はありませんでした~/.local/share/man

ベストアンサー1

現在、ハードウェアがないため、以前のインストールの構成が何であるかはわかりませんが、パスを変更する方法を見つけることができました。

MANPATH環境変数の使用

~によるとmanpath(1)MANPATH環境変数は「一時」(つまり、環境変数が設定されている場合)のパス変更を許可しますman。パターンの後に変数の内容が続き、PATHコロンで区切られますが、許可されます。プレフィックス追加入れるman階層のシステムパス。

  • 到着プレフィックスmanパスに移動してMANPATH変数を取得します。終わりコロンの使用:export MANPATH="$HOME/.local/share/man:
  • 到着追加manパスに移動してMANPATH変数を取得します。スタートコロンの使用:export MANPATH=":$HOME/.local/share/man
  • 到着入れるman2つのコロンを使用するランダムポイントへのシステムパス:export MANPATH="/snap/man::$HOME/.local/share/man

私は個人的にシステムのマニュアルページを探す前にホームディレクトリを見ることを好むので、ファイルに次のようにman設定しました。~/.bashrc

# note the colon at the end
export MANPATH="$HOME/.local/share/man:"

PATH道を指していた。

このブログ投稿によると、テルMANPATH_MAPのアイテム/etc/manpath.configman どのようにの特定の項目に関連する手動ファイルを含むディレクトリを探しますPATHmanそれではこれらを使ってパス関係ファイルを見つけますman。以前のインストールと異なる場合があります。

たとえば、次の項目を考えます。

MANPATH_MAP /usr/local/bin /usr/local/share/man

これにより、マニュアルページが見つかったときに見つかった実行可能ファイルと指定されたエントリとの間のman相対パスが検証されます。PATH

新しいインストールではまだ作成されていません~/.local/bin。ここでは通常、ホームディレクトリにシェルスクリプトや他のローカル実行可能ファイルを保持します。このディレクトリを作成し、新しいシェルを作成したman cargo~/.local/share/man

これはやや直感的ではなく、おそらくもう少し深く掘り下げなければ決して理解できませんでした。manしかし、動作します!

おすすめ記事