2

Linux 中的手动文件存储在/usr/share/man. 以前,我的应用程序只能由 root 用户安装,并将手册文件放在此目录中。现在,我想启用非 root 安装;为此,我所有的数据和配置文件都将安装在~/<appname>/. 但是,man 命令将无法再访问复制到 home 的手动文件。

这个问题的常见解决方法是什么?

我考虑过"man"在我的应用程序中创建一个man -M /<man_path>/<appname>/运行的命令(因为这对用户来说比自己运行命令更容易)。这是一个不错的选择吗?

提前致谢。

4

3 回答 3

3
[spatel@ap4004 appname]$ export MANPATH=/home/spatel/appname/man

[spatel@ap4004 appname]$ manpath
/home/spatel/appname/man/en:/home/spatel/appname/man

其他解决方法是命令alias

[spatel@ap4004 appname]$ alias man='man -M /home/spatel/appname/man'

[spatel@ap4004 appname]$ alias man
alias man='man -M /home/spatel/appname/man'
于 2013-01-28T19:52:01.797 回答
0

man默认情况下(至少在 Fedora 14 及更高版本上)具有新行为,它在与PATH环境变量对应的路径中搜索,即PATH=/xyz/bin它搜索/xyz/bin/man/xyz/share/man以及其他附近的地方。除非MANPATH设置。

你需要unset MANPATH在你的最后.bash_profile,一些启动脚本/etc可能会设置它来惹恼你。

如果您没有使用 -M 或 MANPATH 指定显式路径列表,man 会根据配置文件 /etc/man.config 的内容开发自己的路径列表。配置文件中的 MANPATH 语句标识要包含在搜索路径中的特定目录。

此外,MANPATH_MAP 语句根据您的命令搜索路径(即您的 PATH 环境变量)添加到搜索路径。对于可能在命令搜索路径中的每个目录,MANPATH_MAP 语句指定一个目录,该目录应添加到手册页文件的搜索路径中。man 查看 PATH 变量并将相应的目录添加到手册页文件搜索路径中。因此,通过正确使用 MANPATH_MAP,当您发出命令 man xyz 时,您会获得一个手册页,说明您发出命令 xyz 时将运行的程序。

此外,对于命令搜索路径中没有 MANPATH_MAP 语句的每个目录(我们将其称为“命令目录”),man 会自动查找“附近”的手册页目录,即作为子目录命令目录本身或命令目录的父目录中。

您可以通过在 /etc/man.config 中包含 NOAUTOPATH 语句来禁用自动“附近”搜索。

于 2013-01-28T20:41:20.793 回答
0

您需要使用manpath命令。

于 2013-01-28T19:48:09.067 回答