База данных Locate всегда должна быть обновлена ​​перед поиском

213
Brydon Gibson

Недавно я заметил, что когда я запускаю, locate [something]он всегда будет терпеть неудачу, даже если я знаю, что файлы есть (и я видел их через вызов locateранее). Я должен бежать updatedbперед каждым разом, когда я хочу найти что-то.

Это, кажется, недавняя вещь и не было проблемой в прошлом. Трудно точно сказать, когда он удаляет базу данных, но это может произойти при перезагрузке.

Это нормальное / ожидаемое поведение или у меня происходит что-то странное?

Ожидаемое:

sudo updatedb locate file.c [success] reboot #I think this is the trigger locate file.c [success] 

фактическое поведение:

sudo updatedb locate file.c [success] reboot #I think this is the trigger locate file.c [fail] sudo updatedb locate file.c [success] 

Правки

Это Ubuntu 16.04 с ядром 4.16.8.

locate --versionвозвращается locate (GNU findutils) 4.7.0-git updatedb --versionи возвращается4.7.0-git

тем не мение

apt show findutils не согласен с версией (установленной вручную - я установил ее, но не установил какую-либо конкретную версию)

Package: findutils Version: 4.6.0+git+20160126-2 Priority: required Essential: yes Section: utils Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Andreas Metzler <ametzler@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 573 kB Pre-Depends: libc6 (>= 2.17), libselinux1 (>= 1.32) Suggests: mlocate | locate Conflicts: debconf (<< 1.5.50) Breaks: binstats (<< 1.08-8.1), debhelper (<< 9.20130504), guilt (<< 0.36-0.2), kernel-package (<< 13.000), libpython3.4-minimal (<< 3.4.4-2), libpython3.5-minimal (<< 3.5.1-3), lsat (<< 0.9.7.1-2.1), mc (<< 3:4.8.11-1), sendmail (<< 8.14.4-5), switchconf (<< 0.0.9-2.1) Homepage: http://savannah.gnu.org/projects/findutils/ Task: minimal Supported: 5y Download-Size: 280 kB APT-Manual-Installed: yes APT-Sources: http://repo.bblabs/ubuntu xenial/main amd64 Packages Description: utilities for finding files--find, xargs GNU findutils provides utilities to find files meeting specified criteria and perform various actions on the files which are found. This package contains 'find' and 'xargs'; however, 'locate' has been split off into a separate package. 
0
Обычно у вас должен быть системный менеджер инициализации или cron, который регулярно запускает updatedb (при перезапуске и каждый день или два), чтобы обновить его. Похоже, что сценарий может быть неисправен. В каком дистрибутиве вы работаете? Cliff Armstrong 6 лет назад 0
Последней версией findutils, доступной в каноническом репо для этой версии ubuntu, является 4.6.0. Проверьте `apt show findutils`. Посмотрите, возможно, это происходит из стороннего репо. Это может быть проблемой. Cliff Armstrong 6 лет назад 0
Хорошо. Похоже, что вы как-то вручную установили findutils 4.7.0, но также уже установили findutils 4.6.0 через apt. Это беспорядок и почти наверняка способствует вашей проблеме. Таким образом, вы должны быть в состоянии использовать apt для принудительной переустановки findutils. `apt-get --reinstall install findutils`. Возможно, вам придется выследить и вручную удалить / отключить части другой установки findutils. Другой вариант - установить mlocate. mlocate - это то, что используют более новые версии Ubuntu, и это капля замены (те же команды, в основном те же опции). Cliff Armstrong 6 лет назад 0
Кроме того, источником для findutils в вашей системе является стороннее хранилище ... "bblabs" ... что бы это ни было. Просто к вашему сведению. Cliff Armstrong 6 лет назад 0
Это внутренний репо - я знаю, что там нет проблем. Я перешел к mlocate и удалил `locate` и` updatedb`. Тем не менее, apt очень обеспокоен тем, что я удаляю `findutils` в целом - это нормально, или мне нужно иметь его? Brydon Gibson 6 лет назад 0
оставьте findutils, он включает в себя другие инструменты, которые вам нужны Cliff Armstrong 6 лет назад 0

0 ответов на вопрос