Wie bekomme ich in Linux die Manpage für kompilierte Programme?

484
AniDev

Ich weiß, dass bei der Installation eines Pakets über APT (apt-get oder aptitude für meinen Computer) automatisch die entsprechenden Manpages installiert und die Man-Datenbank aktualisiert werden. Wenn ich jedoch dieselben Pakete erstellen möchte, wird keine Manpage installiert, und ich kann man nicht für dieses Programm verwenden. Wie bekomme ich die Manpages für die von mir zusammengestellte Software? (Ich verwende Ubuntu 10.10).

3
Versuchen Sie, ein `deb`-Paket zu erstellen, oder kompilieren Sie dann die Installation mit` make install`? Wenn der erste, poste deine `debian / rules`. Im letzteren Fall erklären Sie, wie Sie das Programm konfigurieren (haben Sie `. / Configure` ausgeführt, haben Sie das Makefile bearbeitet, welche Variablen haben Sie an` make` übergeben, usw.). Gilles vor 13 Jahren 0
Ich habe cmake benutzt, um das Programm zu konfigurieren. Die Befehlszeile lautete `cmake ../ -DCMAKE_INSTALL_PREFIX = / usr / local`. Ich lief dann wie üblich `make && sudo make install`. AniDev vor 13 Jahren 0

1 Antwort auf die Frage

3
Rich Homolka

Konfigurieren Sie Ihren Software-Build mit den Standardspeicherorten (in / usr) und installieren Sie ihn als root? (aber nicht als root bauen, hoffe ich). Wenn ja, sollten die Manpages, sofern vorhanden, installiert werden, wo mansie bereits angezeigt werden.

Wenn Sie an einem anderen Ort installieren, müssen Sie manwissen, wo sich diese befinden. Sie können dazu die MANPATHUmgebungsvariable verwenden. Legen Sie die normalen manVerzeichnisse fest und fügen Sie Ihr Installationsverzeichnis hinzu. So etwas wieexport MANPATH=/usr/share/man:/path/to/your/dir

EDIT : Ich bin auch nicht sicher, was die Man-Datenbank angeht. Es gibt wirklich keinen. Es gibt einige Distributionen, die die Manpages nachbereiten, entweder komprimieren oder dekomprimieren. Sie führen jedoch nicht wirklich eine Liste von Manpages. Im Pseudo-Code:

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

Dies kann Ihr Problem sein. Wenn Sie ein nicht standardmäßiges Verzeichnis installiert haben, ist die Namenskonvention richtig? Wenn Sie eine Datei bubba.1 haben, sollte die Datei in einem Pfad /path/to/bubba/install/man1/bubba.1und installiert werdenMANPATH=/usr/share/man:/path/to/bubba/install

Manchmal konfiguriere ich meine Software so, dass sie in / usr / local kompiliert wird. Dies könnte das Problem sein. Ich kompiliere nicht als root, aber ich installiere als root (make; sudo make install). Ich glaube jedoch nicht, dass die Manpages da sind (ich habe im man8-Ordner nachgesehen). AniDev vor 13 Jahren 0
Wenn es keine 'Datenbank' gibt, warum gibt es Ordner für man-db und ein Programm namens 'mandb'? AniDev vor 13 Jahren 0
@AniDev: Ich habe kein Mandb auf meinem System. Für meinen obigen Kommentar, habe ich meinen Mann gebeten, um zu sehen, ob er eine db traf, aber nicht. Ich kann nicht für alle Versionen des Menschen sagen, ob sie eine verwenden oder nicht. Rich Homolka vor 13 Jahren 0
OK danke. Wann immer APT ein Paket installiert, heißt es fast immer am Ende irgendwo 'Processing triggers for man-db ...'. AniDev vor 13 Jahren 0
Beantwortet meine Frage nicht ganz, ist aber dennoch hilfreich, daher bezeichne ich Ihre Antwort als akzeptierte Antwort. AniDev vor 13 Jahren 0