Localizar y actualizadob no funciona. ¿Qué tengo que hacer?

12

Mi locatecomando no funciona, pero descubrí que tenía que correr updatedb. Sin embargo, al invocar ese comando, bash dice bash: updatedb: command not found. ¿Qué tengo que hacer?

Doug
fuente
O bien updatedb no está instalado, tampoco está en su variable $ PATH. Cuando ejecute updatedb, debe hacerlo como root o con sudo.
Petrus
Puede buscar updatedb con "find" find / -name updatedb -print

Respuestas:

10

Creo que necesitas instalar el programa de localización. En un sistema Debian Lenny, el archivo / usr / bin / updatedb es un enlace simbólico a / etc / Alternatives / updatedb que es un enlace simbólico a /usr/bin/updatedb.findutils.

Usando dpkg -S puede encontrar a qué paquete pertenece un archivo:

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

Así que creo que necesita instalar localizar y luego ejecutar updatedb como root.

Editar: sí, necesita el paquete de localización. En el archivo /usr/share/doc/findutils/NEWS.Debian.gz puede leer:

localizar ya no está incluido en el paquete findutils. Se ha dividido en un paquete separado "localizar".

y luego en /usr/share/doc/findutils/changelog.Debian.gz, en el registro de cambios el 11 de noviembre de 2007:

Dividir localizar / actualizadob en un paquete separado.

natxo asenjo
fuente
10

No estaba instalado ni en los directorios listados por natxo, pero encontré una solución para instalarlo. ¡Gracias por los protagonistas!

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

En la raíz: apt-get install locate

Doug
fuente
?? aparentemente no lo he explicado correctamente. En un sistema Debian con updatedb instalado, el uso de dpkg -S me ha dicho a qué paquete pertenecía. Es por eso que escribí que necesitabas el paquete de localización, que es lo que has hecho. Sin embargo, me alegro de que lo hayas encontrado por tu cuenta.
natxo asenjo 30/10/10
Para CentOS / RHEL, es yum -y install mlocate.
music2myear
2

La mayor parte del comando que debe ejecutarse como root no está en el $ PATH del usuario, así que simplemente ejecute:

$ sudo updatedb

y debería funcionar

Gopoi
fuente
0

Debe invocar 'updatedb' con privilegios administrativos. Por lo que recuerdo, findutils son parte de una distribución / instalación estándar de Debian, así que eche un vistazo a /etc/updatedb.conf y /etc/cron.daily/(s)locate.

Si no se rompe nada, la construcción de una nueva actualización de [base de datos de localización] es un cronjob diario, por lo que no tiene que preocuparse por esto de todos modos

C_B
fuente