Linuxでは、コンパイルされたプログラムのマニュアルページを取得する方法は?


3

APT(私のコンピューターのapt-getまたはaptitude)を介してパッケージをインストールすると、適切なmanページが自動的にインストールされ、manデータベースが更新されることを知っています。ただし、同じパッケージをビルドする場合、manページはインストールされず、そのプログラムにmanを使用できません。コンパイルしたソフトウェアのマニュアルページを取得するにはどうすればよいですか?(Ubuntu 10.10を実行しています)。


debパッケージをビルドしようとしていますか、それともコンパイルしてからインストールしmake installますか?前者の場合は、を投稿してくださいdebian/rules。後者の場合、プログラムの設定方法を説明します(実行./configureしたか、メイクファイルを編集したか、どの変数を渡したかmakeなど)。
ジル

cmakeを使用してプログラムを構成しました。コマンドラインはでしたcmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local。その後make && sudo make install、いつものように走りました。
AniDev

回答:


3

デフォルトの場所(/ usr)でソフトウェアビルドを構成し、rootとしてインストールしていますか?(しかし、ルートとしてビルドしないことを願っています)。その場合、マニュアルページ(ある場合)は、manすでに表示できる場所にインストールする必要があります。

標準以外の場所にインストールする場合は、manどこにあるかを知らせる必要があります。MANPATHこれを行うには、環境変数を使用できます。通常のmanディレクトリに設定し、インストールディレクトリも追加します。何かのようなものexport MANPATH=/usr/share/man:/path/to/your/dir

編集:また、「manデータベース」についてもわかりません。本当にありません。マニュアルページの後処理、圧縮、または圧縮解除を行うディストリビューションがいくつかあります。しかし、彼らは実際にマニュアルページのリストをどこにも保持していません。擬似コードで:

for DIR in $MANPATH
    for SEC in $MANSECTIONS (or just the one section if you give as `-s SEC`)
        open dirlist for $DIR/man${SEC}
        in dir list list, look for $COMMAND.$SEC
        if you find it, display and exit

これが問題の可能性があります。非標準のディレクトリにインストールした場合、命名規則は正しいですか?ファイルbubba.1がある場合、ファイルは何らかのパスにインストールされ/path/to/bubba/install/man1/bubba.1MANPATH=/usr/share/man:/path/to/bubba/install


ソフトウェアを/ usr / localでコンパイルするように設定することがありますが、これが問題になる可能性があります。ルートとしてコンパイルしていませんが、ルートとしてインストールしています(make; sudo make install)。ただし、manページがそこにあるとは思わない(man8フォルダーを調べた)。
AniDev

また、「データベース」がない場合、man-db用のフォルダーと「mandb」というプログラムがあるのはなぜですか?
AniDev

@AniDev:システムにmandbがありません。上記のコメントでは、manコマンドでstraceを実行して、dbにヒットするかどうかを確認しました。人間のすべてのバージョンについて、それらを使用するかどうかを言うことはできません。
リッチホモルカ

はい、ありがとう。APTがパッケージをインストールするたびに、最後に「man-dbのトリガーを処理しています...」というメッセージが表示されます。
AniDev

私の質問にはまったく答えられませんが、それでも役に立ちますので、あなたの答えを私の受け入れられた答えとしてマークしています。
AniDev
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.