Friday, January 28, 2011

Locate and updatedb doesn't work. What should I do?

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?

  • 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.

    From petrus
  • 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.

  • 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

    natxo asenjo : ?? 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.
    From Doug
  • 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.

    From Gopoi

0 comments:

Post a Comment