【Linux】man 什么都搜不了,No manual entry for xxx 的解决方案
man 什么都搜不了,No manual entry for xxx
的解决方案
系统
CentOS 7.6
1. 问题描述
今天查手册的时候,发现 man 什么都查不了。不管是系统接口还是函数,都显示没有入口文档(No manual entry for)
1 | [muxue@bt-7274:~/git]$ man pthread_create |
这可得难受了,要知道,我的博客里面关于接口定义的说明,很多都是从 man 手册里面复制出来的。
在 root 下尝试了安装,并 yum update
更新之后,还是无法使用
于是我就去 stackoverflow 提了个问题 【点我】 然后又自己解决了这个问题😂
2. 解决
感谢 kook 频道的大佬,一眼就看出来这个是环境变量的问题
2.1 重装 man
先试试 reinstall
重装
1 | yum reinstall man-pages |
2.2 查看环境变量
安装完毕,查看 MANPATH
的环境变量,可以看到当前指向的是 devtoolset-11
里面的 man
1 | # echo $MANPATH |
罪魁祸首就找到了!几天前,我升级了云服务器的 gcc 版本【教程】当时安装的就是 devtoolset-11
;
所以,情况就是升级的过程中,man 的环境变量被修改了!
我们要做的就是给他改回来
2.3 修改成正确的环境变量
先用 whereis man
找一下 man 的安装路径,一般都是 /usr/share/man
1 | # whereis man |
将 /usr/share/man
导入到环境变量
1 | export MANPATH=/usr/share/man |
此时再 man,发现已经活过来了
1 | man man |
2.4 永久生效
export MANPATH=/usr/share/man
只是暂时修改当前 bash 的环境变量,要想完全生效,需要修改 bash 的配置文件
注意:修改配置文件之前,一定要 cp 进行备份,避免修改 boom!
- 用户目录下的
.bashrc
在里面添加如下命令
1 | MANPATH=/usr/share/man |
然后再 source
使其生效
1 | source .bashrc |
此时,当前用户的 bash 就能正常使用 man 了,但是其他用户还是不行。这就需要我们修改系统的配置文件
- 系统配置文件
/etc/bashrc
注意,系统的配置文件需要输入的是命令。在新建 bash 的时候会执行。如下
1 | export MANPATH=/usr/share/man |
同样的,source
使其生效
1 | source /etc/bashrc |
现在就 OK 了!此时其他用户也能正常使用 man 了
- 最新
- 最热
- 最早
- 作者
点击重新获取 | 打开控制台