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$ 

ฉันจะเอาชนะปัญหานี้เมื่อพยายามเรียกใช้ updateb ได้อย่างไร

คำตอบ:


26

คุณต้องรันคำสั่ง updatedb ในฐานะผู้ใช้ขั้นสูง ตัวอย่างเช่น,

sudo updatedb

เมื่อสร้างแล้วฐานข้อมูลจะสามารถอัปเดตโดยผู้ใช้ปกติ ( เช่นจากcrontab) โดยไม่มีสิทธิ์ผู้ใช้ขั้นสูงหรือไม่
holdenweb

1
อัพเดต db สร้างไฟล์แคชใน / var / cache / locate / locatedb ซึ่งสามารถเขียนได้โดย root เท่านั้น ดังนั้นผู้ใช้ทั่วไปไม่สามารถรันคำสั่งได้ แต่เป็นไปได้ที่จะสร้างไฟล์ในตำแหน่งอื่นซึ่งผู้ใช้ทั่วไปสามารถเขียนได้ (แต่ปัญหาคือผู้ใช้ปกติไม่สามารถอ่านระบบไฟล์ทั้งหมด)
Manula Waidyanatha

1

หากคุณไม่มีเวลาและต้องการค้นหาไฟล์คุณไม่จำเป็นต้องsudo updatedbอัปเดตแคช คุณสามารถใช้locate -e filenameเพื่อข้ามแคชแทน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.