updateb: không thể mở tệp tạm thời cho `/var/lib/mlocate/mlocate.db '


14

Tôi đi đến sử dụng lệnh updateb để cập nhật chỉ mục và tôi nhận được

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

fyi Lệnh xác định vị trí đang hoạt động, vd

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

Làm thế nào tôi có thể khắc phục vấn đề này khi cố gắng chạy updateb?

Câu trả lời:


24

Bạn phải chạy lệnh updateb là siêu người dùng. Ví dụ,

sudo updatedb

Sau khi được tạo, cơ sở dữ liệu có thể được cập nhật bởi người dùng thông thường ( ví dụ từ crontab) mà không có đặc quyền siêu người dùng không?
Holdenweb

1
Db cập nhật tạo tệp bộ đệm trong / var / cache / định vị / định vị, chỉ có thể ghi được bằng root. Vì vậy, người dùng thường xuyên không thể chạy lệnh. Nhưng có thể tạo một tệp ở vị trí khác nhau mà người dùng thông thường có thể ghi được. (Nhưng vấn đề là người dùng thông thường không thể đọc toàn bộ hệ thống tệp)
Manula Waidyanatha

1

Nếu bạn thiếu thời gian và muốn xác định vị trí tệp, bạn không cần phải sudo updatedbcập nhật bộ đệm. Thay vào đó, bạn có thể sử dụng locate -e filenameđể bỏ qua bộ nhớ cache.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.