您的位置:首页 > 其它

locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory

2012-10-18 19:39 573 查看
CentOS 6.0安装locate后如下:

yum install mlocate

执行locate时提示如:

locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory

则执行updatedb后即可解决问题。

locate指令和 find找寻文件的功能类似,但 locate是透过 update程序将硬盘中的所有文件和目录资料先建立一个索引数据库,在执行loacte时直接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达 update强迫系统立即修改索引数据库。不过第一次在执行 update后再使用 locate寻找文件常会失败,此时就要执行 slocate -u该命令(也可执行updatedb指令,其效果相同)来更新slocate数据库,该命令会在/usr/sbin下产生slocate执行档,再由locate到此数据库寻找所要找的资料。
然后执行这个命令的时候问题来了,它给出的结果是:
# updatedb

updatedb: src/updatedb.c:595:scan_cwd: 断言“name_size > 1”失败。
网上搜索此问题,只有问的,没有回答的,因此只好自己解决。
使用updatedb的"-v"选项,发现是“/sys/module/nousb/parameters/目录里的一个怪异文件导致updatedb退出,这个怪异文件在列表里如下所示:

ls /sys/module/nousb/parameters/ -lah

总计 0

drwxr-xr-x 2 root root 0 2008-04-24

drwxr-xr-x 2 root root 0 2008-04-24 .

drwxr-xr-x 3 root root 0 2008-04-24 ..
就是第一个文件,什么也没显示的。也没办法删除,重启检测文件系统也没有错误,晕。
最后看了看updatedb的文档,修改了一下它的配置文件,修改updatedb.conf,把包含这个文件的目录放到PRUNEPATHS里,不让updatedab扫描这个目录,然后重新执行updatedb这个命令,顺利完成,至此问题解决。
本文出自 “菜鸟中的战斗机” 博客,请务必保留此出处http://linushai.blog.51cto.com/4976486/1030946
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐