2 votos

updatedb error - mktemp: demasiadas X en la plantilla 'updatedb'

Cuando corro sudo /usr/libexec/locate.updatedb para actualizar manualmente el locate base de datos, obtengo este error:

 sudo /usr/libexec/locate.updatedb
Password:
mktemp: too few Xs in template ‘updatedb’
chown: missing operand after ‘nobody’
Try 'chown --help' for more information.
/usr/libexec/locate.updatedb: line 102: /var/db/locate.database: Permission denied
rm: missing operand
Try 'rm --help' for more information.

¿Cómo lo resuelvo?

5voto

gib Puntos 141

La razón por la que le das a esto es porque tienes el GNU mktemp como primer elemento de su ruta.

Puedes comprobarlo ejecutando, type -a mktemp . Si no ve /usr/bin/mktemp como primera opción, entonces es probable que ese sea su problema.

Por ejemplo yo tengo:

 type -a mktemp
mktemp is /usr/local/opt/coreutils/libexec/gnubin/mktemp
mktemp is /usr/bin/mktemp

La razón por la que golpeó esto es que he corrido brew install coreutils y, a continuación, siga la opción de la sección de advertencias:

Los comandos que también proporciona MacOS se han instalado con el prefijo "g".
Si necesita utilizar estos comandos con sus nombres normales, debe
puede añadir un directorio "gnubin" a su PATH desde su bashrc como:
PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH

Esto puede poner el GNU mktemp por delante de la de MacOS.

La solución consiste simplemente en dejar de hacerlo, eliminar la línea anterior y utilizar únicamente las versiones prefijadas con g (p. ej. gmktemp ) cuando necesite herramientas GNU.

1voto

user379632 Puntos 11

Puede restablecer el PATH con:

sudo env PATH=/usr/bin:/bin:/usr/sbin:/sbin /usr/libexec/locate.updatedb

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X