Updatedb:无法打开`/var/lib/mlocate/mlocate.db'的临时文件


15

我去使用updatedb命令更新索引,我得到

updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'

fyi定位命令正在运行,例如

$ locate Index.xml
/usr/share/mysql/charsets/Index.xml
durrantm.../durrantm$ 

尝试运行updatedb时如何解决此问题?

Answers:


26

您必须以超级用户身份运行updatedb命令。例如,

sudo updatedb

创建数据库后,普通用户是否可以在没有超级用户特权的情况下(例如crontab)更新数据库?
holdenweb

1
更新数据库在/ var / cache / locate / locatedb中创建缓存文件,该文件只能由root写入。因此普通用户无法运行该命令。但是可以在普通用户可写的其他位置创建文件。(但是问题是普通用户无法读取整个文件系统)
Manula Waidyanatha 2015年

1

如果您没有时间想要找到文件,则不需要sudo updatedb更新缓存。相反,您可以使用locate -e filename跳过缓存。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.