Tell me more ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

My locate command doesn't work, but I found out I had to run updatedb. However, upon invoking that command, bash says bash: updatedb: command not found. What should I do?

share|improve this question
Either updatedb is not installed, either it's not in your $PATH variable. When running updatedb, you must do it as root or with sudo. – petrus Oct 30 '10 at 21:38
You could look for updatedb with "find" find / -name updatedb -print – Linda May 18 at 17:10

4 Answers

up vote 3 down vote accepted

I think you need to install the locate program. In a debian lenny system, the /usr/bin/updatedb file is a symlink to /etc/alternatives/updatedb which is a symlink to /usr/bin/updatedb.findutils.

Using dpkg -S you can find what package a file belongs to:

$ dpkg -S /usr/bin/updatedb.findutils 
locate: /usr/bin/updatedb.findutils

So I think you need to install locate and then run updatedb as root.

Edit: yes, you need the locate package. In the file /usr/share/doc/findutils/NEWS.Debian.gz you can read:

locate is no longer included in the findutils package. It has been split off to a separate package "locate".

and then in /usr/share/doc/findutils/changelog.Debian.gz, on the changelog on 11 nov 2007:

Split off locate/updatedb to a separate package.

share|improve this answer

Must of the command that must be run as root are not in the user's $PATH so just run:

$ sudo updatedb

and it should work.

share|improve this answer

It was not installed and not in the directories listed by natxo, but I found a solution to install it. Thank you for the lead guys!

http://www.nicecabbage.com/2009/08/install-locate-and-updatedb-on-centos-and-debian/

In root: apt-get install locate

share|improve this answer
?? apparently I have not explained it properly. In a debian system with updatedb installed, using dpkg -S has told me what package it belonged to. That is why I wrote you needed the locate package, which is what you have done. Glad you found it on your own, though. – natxo asenjo Oct 30 '10 at 21:56

You have to invoke 'updatedb' with administrative privileges. As far is I remeber, findutils are part of a standard Debian distribution /installation, so have a look at /etc/updatedb.conf and /etc/cron.daily/(s)locate.

If nothing's broken, the built of a fresh updatedb [locate database] is a daily cronjob, so you dont'have to worry about this anyway

share|improve this answer

protected by Chris S May 18 at 17:41

This question is protected to prevent "thanks!", "me too!", or spam answers by new users. To answer it, you must have earned at least 10 reputation on this site.

Not the answer you're looking for? Browse other questions tagged or ask your own question.