【Linux】man什么都搜不了,No manual entry for xxx的解决方案
慕雪的小助手正在绞尽脑汁···
慕雪小助手的总结
DeepSeek & LongCat
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了

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 慕雪的寒舍!
 评论




