Linux中的手动文件存储在/usr/share/man
中。之前,我的应用程序只能由root用户安装,并将手动文件放在此目录中。现在,我想启用非root安装;为实现这一目标,我的所有数据和配置文件都将安装在~/<appname>/
下。但是,man命令将无法再访问复制到home的手动文件。
此问题的常用解决方法是什么?
我想在我的应用程序中创建运行"man"
的{{1}}命令(因为这比用户自己运行命令更容易)。这是一个不错的选择吗?
提前致谢。
答案 0 :(得分: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'
答案 1 :(得分:0)
您需要使用manpath命令。
答案 2 :(得分:0)
man
默认情况下有新行为(至少在Fedora 14及以上),它会在与PATH
环境变量相对应的路径中进行搜索,即PATH=/xyz/bin
搜索/xyz/bin/man
/xyz/share/man
},MANPATH
和附近的其他地方。除非设置了unset MANPATH
。
您需要在.bash_profile
末尾/etc
,{{1}}中的某些启动脚本可能会将其设置为反对您。
如果未使用-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语句来禁用自动“附近”搜索。