ユーザーディレクトリのどこにマニュアルページをインストールする必要がありますか?

ユーザーディレクトリのどこにマニュアルページをインストールする必要がありますか?

私が書いた小さなPerlユーティリティ用のMakefileを作成しようとしていますが、次のmakeように実行すると、マニュアルページがインストールされている場所を見つける方法を見つけるのが困難になりました。ルートではないユーザー。

現在のディレクトリの最初のパスをmanpath見つけるために出力を解析しています。$HOMEほぼうまくいきます。

私が見つけたパスは次~/manのとおりです。~/share/man

唯一の問題は、そのディレクトリが最初から存在しない限り、manpathディレクトリが出力されないことです。

質問

  • ユーザーの$ HOMEディレクトリからマニュアルページをどこにインストールする必要があるかを調べるための移植可能な方法はありますか?
  • そうでない場合、どちらが優先されるべきですか?

答え1

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

$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.bashMANPATH=$HOME/.bash_profile$HOME/.bashrc

引用する

答え2

私はコンパイルしたいくつかのアプリケーションをインストールしconfigureます${HOME}/usr/local

これでディレクトリがあることがわかりました。

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

マンページgnuplot.1gnuplot-ja.1python3.1python3.5.1libpng.3libpngpf.3、 、zlib.3だからpng.5(私のプレフィックスが与えられたら)これはローカルにインストールされたアプリケーションのかなり標準的な場所だと思います。

これは、ローカルディレクトリを手動で選択する必要がある状況の候補位置ですman

manもちろん、次の内容を含むページに任意のパスを追加することもできます(一般的に言及されている場合でもこれを行う必要があります)。

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

(より追加/フロント追加への防弾アプローチ:)でコロンを処理するために使用されますPATH

答え3

説明とともに回答

私は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すでに機能している解決策が見つかったので、気にしませんでした。


また参考にしてください

あなたの要件に応じて、rootではなくユーザーに提供できると思います/share/man/man1/var/cache/man間違っていたら訂正してください。


約束ノートは一番下にあります。

ディレクトリがファイルシステムのルートの2つのディレクトリ内にあると思い、サブストリングを含む外部ディレクトリをあまり取得したくないので、このオプションを-maxdepth 2使用しました。findmanman/lib/gnome-co男性der

周辺の追加コンテンツは、または にアクセスできない場合にfindエラーを抑制することです。Permission deniedsusudoここ何が起こっているかについての良い説明です。 ("gniourf_gniourf"で始まる行を探してください。)

関連情報