dpkg no puede encontrar ldconfig/start-stop-daemon en la variable PATH

dpkg no puede encontrar ldconfig/start-stop-daemon en la variable PATH

Estaba intentando instalar bsd-mailxla utilidad, el paquete se instaló, sin embargo, me pregunto cuál es el error.

Este es el error que me sale:

Preconfiguring packages ...
dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.
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)

Respuesta1

En primer lugar, las líneas que realmente te interesan son:

dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.

Estos errores han sido reportados varias veces por usuarios de Debian y Ubuntu (de hecho, puedes buscarlos en Google para obtener más información). Parece que la PATHvariable no está configurada correctamente cuando el usuario intenta ejecutar un comando a través de sudo, que probablemente es lo que estás intentando hacer.

Solución 1: Establecer sudola ruta segura predeterminada

Ábralo /etc/sudoersejecutando visudoen su terminal y asegúrese de que el archivo incluya la siguiente línea:

Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Puede encontrar más información sobre este problema.aquí(Problemas y consejos > RUTA no configurada).

Solución 2: use la cuenta raíz directamente

No use sudo, simplemente cambie a rootpara ejecutar sus comandos. Ejecute uno de los siguientes comandos para hacerlo:

$ sudo -i
$ su 

Una vez que haya iniciado sesión como root, simplemente ejecute sus apt-getcomandos nuevamente:

# apt-get ...

Sin embargo , es posible que tengas que establecer la raíz PATHprimero. Edite /root/.bashrc(con privilegios de root, por supuesto) y agregue la siguiente línea:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Solución 3: intente pasar la PATHvariable sudoen el momento de la ejecución.

Simplemente anteponga la sudollamada con la redefinición de la PATHvariable:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin sudo apt-get ...

Respuesta2

de alguna manera tuve el mismo problema.

Lea atentamente su mensaje de error y encontrará la solución. Hay una nota que dice:

Nota: la RUTA de root normalmente debe contener /usr/local/sbin, /usr/sbin y /sbin.

Luego verifiqué mi ruta y de alguna manera me faltaba el /sbin en mi ruta.

eco $ RUTA

luego agregué y el problema desapareció. :)

exportar RUTA="$RUTA:/sbin"

¡Tcharam!

Respuesta3

La falta de descripción en la pregunta hace que sea difícil identificar el problema exacto en esta situación, pero recientemente me enfrenté al mismo problema:

user@debian:su
Password: 
root@debian:/home/user/Downloads# dpkg -i [Some package]
dpkg: warning: 'ldconfig' not found in PATH or not executable
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable
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

La solución fue usar su -en lugar de su(que generalmente es mejor, como se detalla enlas respuestas a esta pregunta):

user@debian:su -
Password: 
root@debian:~# cd /home/user/Downloads/
root@debian:/home/user/Downloads# dpkg -i [Some package]

Respuesta4

Ninguna de las soluciones mostradas aquí me ayudó, así que explicaré lo que me pasó y qué hice para solucionarlo:

Estaba intentando instalar Insync en mi sistema Q4OS y no pude porque la aplicación requiere libc6 >= 2.32 y Q4OS usa 2.31. Encontré un deb libc6 de 2.32 y luego comenzó la pesadilla. Se ha roto todo mi sistema. apt-getdejó de funcionar y dice que el sistema necesita libc6 2.31 para funcionar correctamente. En ese momento no sabía cómo bajar la versión. Entonces, después de reiniciar, el sistema simplemente no se inició y colgó con el mensaje al arrancar:

A start job is running for Hold until boot process finishes up (Xmin Xs/no limit)

Intenté cambiar de terminal sin éxito. Con suerte, mi Linux se estaba ejecutando en VMWare y pude conectarme a la máquina usando SSH.VM -> SSH -> Connect to SSH...

Después de eso, intenté muchas cosas sin éxito. Intenté actualizar con:

sudo apt install upgrade

y el mensaje dice que tuve que ejecutar:

sudo apt --fix-broken install

Pero cuando intenté ejecutarlo, dijo que se eliminarían muchos paquetes, incluido q4os-desktopél mismo. Bueno, acepto las condiciones y lo intenté. ¿Qué más podría perder?

Después de eso, la cosa empeora demasiado. No pude ejecutar nada. Recibí un error similar a la pregunta:

Preconfiguring packages ...
dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.
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)

Pero el problema no era la RUTA en sí, sino que ldconfig es parte de libc6 y se eliminó. No pude hacer nada porque casi todo depende de libc6 y ldconfig. Intenté compilar libc6 desde el código fuente, pero sin éxito. Tiene muchas dependencias y cuando intenté instalar una dependencia, la biblioteca intentó usar algo de libc6. Una especie de bucle de dependencia.

Entonces, reinicio el sistema con el Live CD de Q4OS y simplemente copio el ldconfig binario en /usr/sbin/ldconfig. ¡Bien! Ahora, apt-getempezó a funcionar de nuevo (no perfectamente, pero...). Entonces descubrí cómo degradar la biblioteca:

sudo apt install libc6=2.31-13+deb11u3

Si no está seguro de qué versión utilizar, ejecute:

apt list --installed | grep libc6

dentro del Live CD. La salida debería ser algo como:

libc6/stable,now 2.31-13+deb11u3 amd64 [installed]

Después de eso, pude instalar Q4OS nuevamente:

sudo apt install q4os-desktop

Después de reiniciar, ¡todo volvió a la normalidad!

Pero ahora, cuando ejecuto Insync, la aplicación falla después de 5 segundos.

información relacionada