Ich versuche, ein Makefile für ein kleines Perl-Dienstprogramm zu erstellen, das ich geschrieben habe, und ich kämpfe darum, herauszufinden, wo meine Manpage installiert werden kann, wenn make
sie als Nicht-Root- Benutzer ausgeführt wird.
Ich analysiere gerade die Ausgabe von manpath
, um den ersten Pfad im $HOME
Verzeichnis herauszufinden ... und es funktioniert fast einwandfrei.
Pfade, die ich gefunden habe, sind ~/man
und~/share/man
Das einzige Problem ist, dass, wenn diese Verzeichnisse gar nicht existieren, manpath
keines davon ausgegeben wird.
Fragen
- Gibt es eine tragbare Möglichkeit, um herauszufinden, wo ich die Manpages im $ HOME-Verzeichnis des Benutzers installieren soll?
- Wenn nicht, welches sollte bevorzugt werden?
manpath
Warnungen vorMANPATH
dem Setzen zu unterdrücken , können Sie die-q
Option übergeben.man
wo ich suchen soll. Ich bin auf der Suche nach einem generischen, portablen Weg für eine generische Installation (dh: Wo istman
auf einer Standardkonfiguration suchen)echo $MANPATH
und schau was das zeigt. Dies sind gute Orte, um nachzuschauen oder denmanpath
Befehl zu verwenden, wie ich in meiner Antwort gezeigt habe.Antwort mit Beschreibung
Ich verwende Cygwin unter Windows 7. Wenn ich es versuche
Ich bekomme nichts Hier ist meine tragbare Methode, um herauszufinden, wo neue
man
Seiten abgelegt werden sollen .(Eine Notiz zu diesem verrückten Befehl befindet sich am Ende dieser Antwort.)
Sie könnten einfach ersetzen
/
mit~
. Eine andere Möglichkeit finden Sie im Abschnitt Anderer Hinweis weiter unten.Auf meinem Computer gab der
find
Befehl Folgendes zurück:Für mich bedeutete das, dass es zwei Möglichkeiten gab:
/share/man
und/usr/man
.Ich habe mich für die Verwendung entschieden
/usr/man
, was Sie nicht wollten, aber ich musste noch etwas mehr erforschen.Also, wo ich die neuen
man
Dateien in einemdoc/
Unterverzeichnis meines Arbeitsverzeichnisses hatte, habe ich verwendetNun konnte ich durch Tippen zu meinem "Handbuch" gelangen
Wenn Sie keinen wahrscheinlichen Kandidaten sehen, können Sie diesen Teil entfernen oder ändern, z. B. in
-maxdepth 3
oder4
oder5
, oder wie tief es dauert, um das zu finden, was Sie benötigen. Als ich das tat3
, fand ich zwei andere Kandidaten,/var/cache/man
undusr/share/man
ich hatte bereits eine funktionierende Lösung gefunden, also habe ich mich nicht mit ihnen angelegt.Noch ein Hinweis
Ich glaube , dass
/share/man/man1
oder/var/cache/man
würde zu nicht-Root - Benutzer zur Verfügung stehen, wie gewünscht hatte. Bitte korrigieren Sie mich, wenn ich falsch liege.Die versprochene Note unten
Beachten Sie, dass ich die
-maxdepth 2
Option mit verwendet habefind
, da ich davon ausgegangen bin, dass sich dasman
Verzeichnis innerhalb von zwei Verzeichnissen des Dateisystemstamms befindet und ich nicht zu viele externe Verzeichnisse abrufen möchte, die irgendwie die Teilzeichenfolge habenman
, wie dies/lib/gnome-co
man getan hatder
.Das zusätzliche Zeug um das
find
ist da, umPermission denied
Fehler zu unterdrücken , falls Sie keinen Zugriff aufsu
oder habensudo
. Hier ist eine großartige Beschreibung dessen, was passiert. (Suchen Sie nach der Zeile, die mit "gniourf_gniourf" beginnt.)quelle
Ich habe einige Apps installiert, die ich kompiliert habe und in denen die entsprechenden
configure
s für die Installation festgelegt sind${HOME}/usr/local
.Ich finde jetzt, dass ich Verzeichnisse habe
mit manpages
gnuplot.1
,gnuplot-ja.1
,python3.1
,python3.5.1
,libpng.3
,libpngpf.3
,zlib.3
,png.5
, so dass ich (da meinem Präfix) schätze , dass es für Anwendungen lokal installierten eine ziemlich Standard Lage ist.Dies ist dann ein Standortkandidat für die Fälle, in denen das lokale
man
Verzeichnis manuell ausgewählt werden muss .Natürlich kann man für
man
Seiten mit beliebigen Pfaden hinzufügen (und sollte es auch im eben genannten Normalfall tun)(siehe dies ).
quelle