关于新的man版本出现“无法解析 /usr/share/man/zh_CN/man1/ls.1.gz: 没有那个文件或目录“

<div id="article_content" class="article_content"> <p>今天学习了下man,有关详细资料参考:<a target="_blank" href="http://www.cnblogs.com/hnrainll/archive/2011/09/06/2168604.html">http://www.cnblogs.com/hnrainll/archive/2011/09/06/2168604.html</a><br /></p> <p><br /></p> <p>toor@door:/usr/share/doc/man-db/examples$ man ls</p> <p><span style="color:#FF0000">man: 无法解析 /usr/share/man/zh_CN/man1/ls.1.gz: 没有那个文件或目录</span></p> <p><br /></p> <p>版本</p> <p>toor@door:~$ man --version<br /><span style="color:#FF0000">man 2.5.7</span><br /><br /><br /></p> <p>原因:因为新的man支持环境变量了。查看帮助:</p> <p><br /> NAME<br /> man - 格式化并显示在线帮助手册页<br /> manpath - 定义用户查找man手册页的路径<br /><br /> ...此处省略n字...<br /><br /><u> <span style="color:#FF0000"> LANG </span> 如果 LANG 有定义,它的值将指定man在查找文档时首先查找的子目录。因此,命令“LAN G=dk man 1<br /> foo”会使man在查找man页时首先查找../dk/man1/foo.1,如果在其中没有找到相<br /> 关文档,则查找../man/foo.1,此目录是由查找路径指定的。<br /><br /> NLAPATH,<br /> 环境变量 NLAPATH 和 <span style="color:#FF0000">LC_MESSAGES </span> (或当后一个不存在时使用 LANG )充当了定位文档目录的<br /> 角色。(但英文信息是编译进命令的,所以针对英文而言,就没有目录存在)。注意,象col (1)这样被man调用的程序也使用象<br /> LC_CTYPE 这样的变量。<br /><br /> PATH 变量 PATH 是在解释查找man手册页路径时使用的。</u><br /></p> <p><br /></p> <p>shell中输入:locale 查看本地locale</p> <p>toor@door:~$ locale<br /><span style="color:#FF0000">LANG=zh_CN.UTF-8</span><br /> LANGUAGE=zh_CN:en<br /> LC_CTYPE="zh_CN.UTF-8"<br /> LC_NUMERIC="zh_CN.UTF-8"<br /> LC_TIME="zh_CN.UTF-8"<br /> LC_COLLATE="zh_CN.UTF-8"<br /> LC_MONETARY="zh_CN.UTF-8"<br /><span style="color:#FF0000">LC_MESSAGES="zh_CN.UTF-8"</span><br /> LC_PAPER="zh_CN.UTF-8"<br /> LC_NAME="zh_CN.UTF-8"<br /> LC_ADDRESS="zh_CN.UTF-8"<br /> LC_TELEPHONE="zh_CN.UTF-8"<br /> LC_MEASUREMENT="zh_CN.UTF-8"<br /> LC_IDENTIFICATION="zh_CN.UTF-8"<br /> LC_ALL=<br /><br /> 所以如果你的系统没有安装manpages-zh中文手册的时候会出现<span style="color:#FF0000">man: 无法解析 /usr/share/man/zh_CN/man1/ls.1.gz: 没有那个文件或目录</span>的情况(即使是你在/etc/manpath.config中没有设置中文搜索路径,也会导致这个错误出现。<br /></p> </div>

发表评论