All things are difficult before they are easy. 没有软件的裸机是一具僵尸,没有硬件的软件是一个幽灵。2012,专注于Linux和C语言,关注自动化、性能测试,关注开源社区和开源测试工具、方法,尝试测试团队管理!

红旗Linux中locate命令出错的解决方案

上一篇 / 下一篇  2009-05-31 11:35:34 / 个人分类:Linux

    本人支持国货,呵呵,虚拟机中的Linux是红旗的,前几天是6.0现在换成7.0了。。。(该问题依然存在)。

    看鸟哥的那什么linux书,呵呵,说到whreis和locate比find命令的查找效率要高很多,我也就试试locate了,然而确发生了错误。可能算是红旗的一个bug吧。
有时候出错了,加个-v看详细信息,有时还是能发现一些问题的。呵呵
我在红旗社区里面也发了帖子:http://www.redflag-linux.com/bbs/read.php?15,251855

    看见论坛里有08年就提出这个问题了 都还没有人解答 自己也出现了这个问题 到处找答案 现在问题可以解决了,分享在这里吧 希望对一些朋友有用。
原因是redflag的linux里面用个/sys/module/nousb/parameters/ 目录下面有几个很怪异的目录,自己去看吧可能是有什么其他用途。下面的一个目录名为空,所以updatedb会抛出错误(断言“name_size > 1”失败)。
解决方案在这里看到的:http://www.linuxdiyf.com/bbs/thread-96865-1-1.html
我做过尝试 该方案确实是可行的。。。

问题:我用的是red flag 6.0 我用虚拟机安的红旗linux6.0但当用locate命令时出现:
locate: can not open `/var/lib/mlocate/mlocate.db': 没有那个文件或目录
我觉的可能是因为没有更新数据库的原因,但当我用updatedb命令更新数据库时(我是以root用户登陆的)出现:
updatedb: src/updatedb.c:595:scan_cwd: 断言“name_size > 1”失败。

解决方案:
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的文档,修改了一下它的配置文件,修改/etc/updatedb.conf,把目录 "/sys/module/nousb/parameters"(不含引号)放到PRUNEPATHS里,不让updatedab扫描这个目录,然后重新执行updatedb这个命令,顺利完成,至此问题解决。


TAG:

 

评分:0

我来说两句

smile665

smile665

Stay hungry, stay foolish. 得意之时谨记,一半命运还掌握在上帝手里;失意之时须知,一半命运还掌握在自己手里。

日历

« 2024-04-16  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 954746
  • 日志数: 220
  • 建立时间: 2008-11-06
  • 更新时间: 2012-10-06

RSS订阅

Open Toolbar