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

时间:2021-12-16 16:55:39

今天学习了下man,有关详细资料参考:http://www.cnblogs.com/hnrainll/archive/2011/09/06/2168604.html


toor@door:/usr/share/doc/man-db/examples$ man ls

man: 无法解析 /usr/share/man/zh_CN/man1/ls.1.gz: 没有那个文件或目录


版本

toor@door:~$ man --version
man 2.5.7


原因:因为新的man支持环境变量了。查看帮助:


NAME
       man - 格式化并显示在线帮助手册页
       manpath - 定义用户查找man手册页的路径

     ...此处省略n字...

       LANG   如果   LANG   有定义,它的值将指定man在查找文档时首先查找的子目录。因此,命令“LAN   G=dk  man  1
              foo”会使man在查找man页时首先查找../dk/man1/foo.1,如果在其中没有找到相
              关文档,则查找../man/foo.1,此目录是由查找路径指定的。

       NLAPATH,
              环境变量   NLAPATH   和  LC_MESSAGES  (或当后一个不存在时使用  LANG  )充当了定位文档目录的
              角色。(但英文信息是编译进命令的,所以针对英文而言,就没有目录存在)。注意,象col    (1)这样被man调用的程序也使用象
              LC_CTYPE 这样的变量。

       PATH   变量 PATH 是在解释查找man手册页路径时使用的。


shell中输入:locale 查看本地locale

toor@door:~$ locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:en
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

所以如果你的系统没有安装manpages-zh中文手册的时候会出现man: 无法解析 /usr/share/man/zh_CN/man1/ls.1.gz: 没有那个文件或目录的情况(即使是你在/etc/manpath.config中没有设置中文搜索路径,也会导致这个错误出现。