Linux:仅为当前用户安装的应用程序中的Man命令

时间:2013-01-28 18:14:29

标签: linux man

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

此问题的常用解决方法是什么?

我想在我的应用程序中创建运行"man"的{​​{1}}命令(因为这比用户自己运行命令更容易)。这是一个不错的选择吗?

提前致谢。

3 个答案:

答案 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语句来禁用自动“附近”搜索。