Desde finales de verano, con cada actualización diaria de sid
obtenía un error de apt
o aptitude
(ambos fallaban por igual), diciendo que no podía encontrar el PATH correcto.
dpkg: aviso: `ldconfig' no se ha encontrado en el PATH o no es ejecutable.
dpkg: aviso: `start-stop-daemon' no se ha encontrado en el PATH o no es ejecutable.
dpkg: error: 2 expected programs not found in PATH or not executable.
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
E: Sub-process /usr/bin/dpkg returned an error code (2)
Un paquete no se pudo instalar. Intentado recuperarse:
dpkg: aviso: `ldconfig' no se ha encontrado en el PATH o no es ejecutable.
dpkg: aviso: `start-stop-daemon' no se ha encontrado en el PATH o no es ejecutable.
dpkg: error: 2 expected programs not found in PATH or not executable.
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
Una comprobación rápida me decía que las rutas de la variable sí estaban bien fijadas en el usuario root
y, de hecho, la misma operación, comando por comando, funcionaba bien en el momento en que iniciaba sesión como superusuario. Así que era cosa de sudo
.
Como muchos, espero, tengo un alias creado para actualizar el equipo de forma rápida e indolora (la mayoría de las veces :)), que utiliza sudo para evitar iniciar sesión.
diego@mestizo:~$ alias uf
alias uf='sudo aptitude update && sudo aptitude full-upgrade && sudo apt-get clean'
Para evitar el error del PATH, hay que especificar cuales son las rutas adecuadas a emplear con el programa. En otras palabras, hay que añadir la siguiente definición:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
al fichero /etc/sudoers
. Hecho esto, se acabaron los avisos, los inicios de sesión y demás engorros.
3 ideas sobre “[truco] sudo no encuentra el PATH al usar apt o aptitude”
Esta todavía no me ha pasado pero lo apunto porque eres premonitorio y me pasará xDD
Buen tip !
Pues yo soy de los que actualiza el sistema metiendo los comandos uno a uno, tranquilamente. Casi podría decir que es un ritual, ya que es una de las pocas cosas para las que, a pesar de hacerlas con cierta frecuencia, no utilizo un alias. Aptitude es una de las razones por las que soy incondicional de Debian, digamos que me gusta «disfrutarlo»
Buen apunte el de cómo indicar el PATH, ya que es aplicable a muchos comandos (véase ifconfig, por ejemplo) que a pesar de no requerir privilegios de superusuario para su ejecución, no tiene predefinida la ruta y no permite ejecutarlo como usuario normal. Sí es cierto que normalmente son programas que no se suelen ejecutar como usuario normal, pero en caso de requerirlo, sería tan simple como aplicar lo que cuentas arriba a cada caso concreto.
Como siempre, un placer leeros.
¡Un saludo! 😉
Buen apunte. Yo también uso aptitude sin alias como Debish, anda que no se pone divertido un full-upgrade alguna vez con las dependencias :P.
Saludos.