デフォルトを上書きせずにMANPATHを設定する方法は?


13

$PATHエクスポートによって追加のディレクトリを追加しましたPATH=/my/dirs:$PATH が、同じ操作を行う必要があるかどうかはわかりませんMANPATH。デフォルトMANPATHは空なので、manコマンドは機能します。というコマンドを見つけましたがmanpath、そのマニュアルにはが記載されていIf $MANPATH is set, manpath will simply display its contents and issue a warning.ます。これは、MANPATHの設定がman、マニュアルページを検索するコマンドのディレクトリを追加する正しい方法ではないことを意味しますか?

回答:


19

単にMANPATHを設定すると、デフォルトが上書きされ、標準のマニュアルページにアクセスできなくなります。たとえば、man lsMANPATHを設定する前に機能しますが、その後は機能しません。

デフォルトを上書きせずに検索ディレクトリを追加するには、次のようにコロンをプレフィックスMANPATHに追加します。

export MANPATH=":/path/to/custom/man"

コロンを追加すると、標準システムのマニュアルページとMANPATH変数で参照されるカスタムページの両方にアクセスできます。

この答えはmanpath(1)によってもたらされました:

$ MANPATHが設定されている場合、manpathはその場で決定するのではなく、その値を表示します。$ MANPATHの前にコロンが付いている場合、変数の値は構成ファイルの内容から決定されるリストに追加されます。コロンが変数の値の最後に来ると、決定されたリストが変数の内容に追加されます。変数の値に二重コロン(::)が含まれている場合、決定されたリストは値の中央、2つのコロンの間に挿入されます。


1

IMOは、PATHの最後にカスタムディレクトリを追加する必要があります

PATH=$PATH:/my/dirs

これは、カスタムディレクトリがシステムバイナリ/ライブラリを上書きしないようにするためであり、セキュリティ上の小さな問題です。

MANPATHを同じ方法で設定します(MANPATHはデフォルトでは空です)。

MANPATH=$MANTPATH:/my/dirs

正常に動作するパッケージでMANPATHを設定する必要はないので、壊れていない場合は修正しないでください。壊れている場合は、バグレポートを提出する方がよいでしょう。

これを〜/ .bashrcに追加します

export PATH=$PATH:/my/dirs
export MANPATH=$MANPATH:/my/dirs

2番目のステートメントのタイプミス? MANPATH=$MANTPATH:/my/dirs たぶん、次のようになりますMANPATH=$MANPATH:/my/dirs
kevinarpe

「行儀の良いパッケージ」とはどういう意味ですか?通常の場所にインストールされていないツールのセットがあります(HPCクラスターは多くの場合、/ optに配置します)。$ MANPATHを使用せずにマニュアルページを登録するにはどうすればよいですか?
i_grok 14年

「正常に動作するパッケージ」は、標準パスと環境変数を使用するように記述されています。動作の悪いパッケージは、非標準、少なくともUbuntuへのパス、/ optなどのパスを使用するか、環境変数を使用しないため、観測につながります。 / opt)にあるもの」
パンサー14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.