ユーザーディレクトリのマニュアルページはどこにインストールすればよいですか?


13

私が書いた小さなPerlユーティリティ用のMakefileを作成しようとしています。そしてmake非rootユーザーとして実行されたときにmanページをインストールする場所を見つけるのに苦労しています。

現在manpath$HOMEディレクトリ内の最初のパスを見つけるためにの出力を解析していますが、ほとんど問題なく動作します。

私が見つけたパスがある~/man~/share/man

唯一の問題は、それらのディレクトリがそもそも存在manpathしない場合、それらのいずれも出力しないことです。

ご質問

  • ユーザーの$ HOMEディレクトリのmanページをどこにインストールするべきかを調べるポータブルな方法はありますか?
  • そうでない場合、どれを優先する必要がありますか?

回答:


13

次のディレクトリにマニュアルページを配置できます。

$HOME/.local/share/man

直接アクセス

そして、次を使用して直接アクセスできますman

man $HOME/.local/share/man/manX/manpage.1.gz

$ MANPATH

$MANPATHコマンドmanpathで内容を確認するか、環境変数をエコーアウトできます$MANPATH

$ manpath
manpath: warning: $MANPATH set, ignoring /etc/man_db.conf
/home/saml/apps/perl5/perlbrew/perls/perl-5.14.0/man:/home/saml/.rvm/rubies/ruby-1.9.2-p180/share/man:/home/saml/.rvm/man:/usr/local/share/man:/usr/share/man:/usr/brlcad/share/man:/usr/man:/usr/brlcad/share/man:/usr/brlcad/share/man

$ echo $MANPATH
/home/saml/apps/perl5/perlbrew/perls/perl-5.14.0/man:/home/saml/.rvm/rubies/ruby-1.9.2-p180/share/man:/home/saml/.rvm/man:/usr/local/share/man:/usr/share/man:/usr/brlcad/share/man:/usr/man:/usr/brlcad/share/man:/usr/brlcad/share/man

一時的にMANPATHに物事を追加できます:

MANPATH=$HOME/.local/share/man:$MANPATH

これを永続的にしたい場合は、/etc/profile.d/ディレクトリmyman.bashに上記のMANPATH=行で呼び出されるファイルを追加します。これは、すべての人にとってシステム全体に適用されます。あなただけのためにしたい場合は、$HOME/.bash_profileまたはに追加します$HOME/.bashrc


2
設定manpathに関する警告を抑制するにMANPATHは、-qオプションを渡すことができます。
ジョセフR.

2
はい、manどこを見ればいいかわかります。私は一般的なインストールのための一般的な、ポータブルな方法をman探しています(すなわち:どこで標準構成を探しています)
Romuald Brunet

して、echo $MANPATHそれが示すものを見てください。これらは検索を開始するのに適した場所であるかmanpath、回答で示したようにコマンドを使用します。
slm

0

思いを込めて答える

Windows 7でCygwinを実行しています。

echo $MANPATH

何も得られません。ここに、新しいmanページを配置する場所を見つける私のポータブルな方法があります。

$ { find / -maxdepth 2 -type d -name "*man*" 3>&2 2>&1 1>&3 | \
grep -v 'Permission denied' >&3; } 3>&2 2>&1

(このクレイジーなコマンドに関するメモは、この回答の最後にあります。)

あなたは、単に置き換えることができ/~別の可能性は、以下の「別のメモ」セクションにあります。

私のマシンでは、findコマンドが返されました:

 /etc/openwsman
 /lib/filemanager-actions
 /lib/gnome-commander
 /lib/help2man
 /lib/window-manager-settings
 /share/man
 /usr/man

私にとって、それは2つの可能性があることを意味しました:/share/man/usr/man

を使用することにしましたが、使用し/usr/manませんが、さらに調査する必要がありました。

$ ls -l /usr/man
total 0
drwxr-xr-x+ 1 me Users 0 April 31 17:13 man1

だから、作業ディレクトリのサブディレクトリに新しいmanファイルがある場所で、doc/

$ cp -R doc/* /usr/man/man1

これで、次のように入力して「マニュアル」にアクセスできました。

$ man my_new_executable

可能性のある候補が表示されない場合は、この部分を削除または変更することができます(例:-maxdepth 3、または4、または5)。でそうしたとき、私は3他に2つの候補を見つけました、/var/cache/manそしてusr/share/man、私はすでに実用的な解決策を見つけていたので、私はそれらを混乱させませんでした。


別のメモ

あなたが要求したように、私はそれを信じる/share/man/man1/var/cache/man、非ルートユーザーが利用できると信じています。間違っている場合は修正してください。


一番下の約束のメモ

私が使用することを注意-maxdepth 2してオプションをfind私がすることを考え出したので、manディレクトリは、ファイルシステムのルートの二つのディレクトリ内にある、と私は何とか部分文字列を持っていた、あまりにも多くの余分なディレクトリを取得する必要はありませんでしたman、としてやった/lib/gnome-co男をder

周りの余分なものは、またはへのアクセス権がない場合にエラーfindを抑制するためのものPermission deniedです。ここで何が起こっているかを説明します。(「gniourf_gniourf」で始まる行を探します。)susudo


0

私はコンパイルしたいくつかのアプリconfigureをインストールしました${HOME}/usr/local。それぞれのsはにインストールするように設定されています。

私は今ディレクトリを持っていることがわかりました

~/usr/local/share/man/man1
~/usr/local/share/man/man3
~/usr/local/share/man/man5

manページでgnuplot.1gnuplot-ja.1python3.1python3.5.1libpng.3libpngpf.3zlib.3png.5私は(私の接頭与えられた)と思いますので、それはアプリケーションのためにかなりの標準的な場所は、ローカルにインストールされています。

これは、ローカルmanディレクトリを手動で選択する必要がある場合の候補場所です。

もちろん、manページの

export MANPATH="$HOME/usr/local/share/man${MANPATH:+:${MANPATH}}"

(参照これを)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.