MANPATH ist nicht auf Scientic Linux 5.5 eingestellt

374
Oliver R.

Bei einer Scientific Linux 5.5-Installation ist der $ MANPATH nicht festgelegt. Ich habe Umgebungsmodule installiert, dies kann zu einem Überschreiben des $ MANPATH führen, aber ich bin mir nicht sicher. Meine Hauptfrage lautet also: An welcher Stelle wird die Datei /etc/man.config so interpretiert, dass sie den $ MANPATH bildet? Handelt es sich um die Bash-Shell (hartcodiert) oder handelt es sich um eine Datei, die zum Zeitpunkt logintime beschafft wird, z. B. / etc / profile? Ich kann unter / etc in keiner Datei für /etc/man.config eine Abhängigkeit finden.

Aus diesem Grund denke ich, dass die Umgebungsmodule den $ MANPATH durcheinander bringen, ist, dass nach dem Einloggen in das System der einzige Eintrag lautet:

# manpath  /cm/local/apps/environment-modules/3.2.6/man 

BEARBEITEN:

In der Zwischenzeit und in Bezug auf die erste Antwort habe ich Folgendes versucht:

# find . -type f -exec fgrep -l -i manpath {} \; ./profile.d/man.sh ./profile.d/man.csh ./man.config 

Nun, das ist der Inhalt von

# cat /etc/profile.d/man.sh  export MANPATH=:ignore:/cm/local/apps/environment-modules/3.2.6/man 

Wenn ich diese Datei entferne, erscheint mindestens "/ usr / man" im $ MANPATH, dies ist jedoch nur die Spitze des Eisbergs dessen, was in der Datei /etc/man.config definiert ist. Ich denke, /etc/man.config wird immer noch nicht vollständig behandelt. Die Änderung von /etc/profile.d/man.sh in Folgendes hatte keine Auswirkungen:

# cat /etc/profile.d/man.sh  export MANPATH=:ignore:/cm/local/apps/environment-modules/3.2.6/man:$MANPATH # echo $MANPATH  ignore:/cm/local/apps/environment-modules/3.2.6/man: 
0

2 Antworten auf die Frage

1
Oliver R.

Dies ist die Lösung: Wenn $ MANPATH gesetzt ist, werden die Standardpfade für manuelle Seiten überschrieben. Wenn Sie $ MANPATH deaktivieren, wird der Standardpfad angezeigt. Führen Sie einfach den Befehl "manpath" aus:

/usr/local/share/man:/usr/share/man/en:/usr/share/man:/usr/man:/usr/local/man 

Der Inhalt von /etc/profile.d/man.sh ist ebenfalls korrekt, da ein führender Doppelpunkt in der $ MANPATH-Variablen das Überschreiben des Standard-Manpath verhindert! Dies ist die eigentliche Lösung für mein Problem, da ein Umgebungsmodul der $ MANPATH-Variablen einen manuellen Pfad ohne den führenden Doppelpunkt vorangestellt hat und daher standardmäßig keine Manpages mehr verfügbar waren.

Eigentlich ist ein nachkommender Doppelpunkt die bessere Option. Auf diese Weise wird Ihr MANPATH nicht am Ende, sondern am Anfang des Standardpfads hinzugefügt. Dies ist hilfreich, wenn Sie dem Pfad eine neuere Version eines vorhandenen Programms hinzufügen. Sie erhalten die neue Version der Manpage und die neue Version des Programms. Mark Booth vor 8 Jahren 0
0
Gombai Sándor

Nun, obwohl ich im Feld Your Answer schreibe, kenne ich DIE Antwort nicht. Ich kenne nur eine Meta-Antwort, die verwendet werden kann, wenn diese Art von "In welcher Konfigurationsdatei ist es verstümmelt?" erscheint.

Installieren Sie den Mitternachtskommandanten, falls Sie es noch nicht getan haben. Starten Sie mc in / etc:

mc /etc 

Starten Sie den Dialog "Datei suchen" mit F9, c, f oder Alt-? oder Meta? (wenn Alt nicht dein Meta ist)

lassen Start bei: sein ein . (einzelner Punkt) als Standard, lassen Sie Dateiname: als Standard * werden und lassen Inhalt: sein MANPATH .

Die Suche nach Inhalten sollte überprüft werden und der erste Treffer sollte nicht.

Lassen Sie die Suche einfach fertig und im Dialog sehen Sie alle Vorkommen von MANPATH in allen Dateien, in denen sie geschrieben wurde. Sie können stöbern und beurteilen, was Ihr Leben schwieriger macht.

Im Grunde ist es das Gleiche, als würden Sie rgrep unter / etc ausführen, indem Sie nach MANPATH suchen und dessen Ausgabe lesen, nur IMHO.