Error al actualizar "dpkg: error: no se ha encontrado 2 en el PATH o no es ejecutable"

9 envíos / 0 nuevos
Último envío
#1 Lun, 06/08/2018 - 15:18
moonwatcher
Imagen de moonwatcher
Desconectado/a
moderador
se unió: 21/01/16

Error al actualizar "dpkg: error: no se ha encontrado 2 en el PATH o no es ejecutable"

Estado: 
[SOLUCIONADO]

Hoy he tenido un error al actualizar en Debian testing (buster) 64 bts. Con escritorio Plasma. Al hacer un apt upgrade me muestra este error:

root@debian:/home/pablo# apt upgrade
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
Calculando la actualización... Hecho
Los siguientes paquetes se han retenido:
  bind9-host dnsutils libbind9-160 libirs160 libisc169 libisccc160 libisccfg160 liblwres160 libreoffice libreoffice-avmedia-backend-gstreamer libreoffice-base libreoffice-base-core libreoffice-base-drivers
  libreoffice-calc libreoffice-common libreoffice-core libreoffice-draw libreoffice-impress libreoffice-java-common libreoffice-l10n-es libreoffice-math libreoffice-report-builder-bin libreoffice-sdbc-firebird
  libreoffice-sdbc-hsqldb libreoffice-style-tango libreoffice-writer python3-uno
Se actualizarán los siguientes paquetes:
  apparmor bsdutils dbus dbus-user-session dbus-x11 dictionaries-common fdisk gdal-data gir1.2-gstreamer-1.0 glx-alternative-mesa glx-alternative-nvidia glx-diversions grub-common grub-pc grub-pc-bin grub2-common
  libapparmor1 libblkid1 libblkid1:i386 libbrotli1 libcryptsetup12 libdbus-1-3 libdbus-1-3:i386 libdbus-1-dev libdns-export1102 libegl-mesa0 libegl-mesa0:i386 libegl1-mesa libepsilon1 libfdisk1 libfreexl1 libfyba0
  libgbm1 libgbm1:i386 libgdal20 libgeotiff2 libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-dri:i386 libgl1-mesa-glx libgl1-mesa-glx:i386 libglapi-mesa libglapi-mesa:i386 libgles2-mesa libglx-mesa0 libglx-mesa0:i386
  libgrilo-0.3-0 libgstreamer1.0-0 libhdf4-0-alt libidn2-0 libisc-export169 libkmlbase1 libkmlconvenience1 libkmldom1 libkmlengine1 libkmlregionator1 libkmlxsd1 libmount1 libmount1:i386 libmspack0 libnetcdf13
  libogdi3.2 libosmgpsmap-1.0-1 libpugixml1v5 libsmartcols1 libsmartcols1:i386 libtesseract4 libuuid1 libuuid1:i386 libwayland-egl1-mesa libxatracker2 man-db mesa-common-dev mesa-va-drivers mount net-tools
  update-glx util-linux util-linux-locales uuid-dev uuid-runtime:i386 vim-common vim-tiny xxd
84 actualizados, 0 nuevos se instalarán, 0 para eliminar y 27 no actualizados.
Se necesita descargar 0 B/45,3 MB de archivos.
Se liberarán 873 kB después de esta operación.
¿Desea continuar? [S/n] s
Obteniendo informes de fallo... Finalizado
Analizando información Encontrada/Corregida... Finalizado
Leyendo lista de cambios... Hecho.
Extrayendo plantillas para los paquetes: 100%
Preconfigurando paquetes ...
dpkg: atención: `ldconfig' no se ha encontrado en el PATH o no es ejecutable
dpkg: atención: `start-stop-daemon' no se ha encontrado en el PATH o no es ejecutable
dpkg: error: no se ha encontrado 2 en el PATH o no es ejecutable
NOTA: El PATH de root debería incluir habitualmente /usr/local/sbin, /usr/sbin y /sbin.
E: Sub-process /usr/bin/dpkg returned an error code (2)
root@debian:/home/pablo# dpkg --configure -a
dpkg: atención: `ldconfig' no se ha encontrado en el PATH o no es ejecutable
dpkg: atención: `start-stop-daemon' no se ha encontrado en el PATH o no es ejecutable
dpkg: error: no se ha encontrado 2 en el PATH o no es ejecutable
NOTA: El PATH de root debería incluir habitualmente /usr/local/sbin, /usr/sbin y /sbin.

He hecho un dpkg --configure -a por probar, pero me sigue dando el mismo error asi que mirando por la red he encontrado la solución.

Solo abrir una terminal como root y ejecutar esto:

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

Tras eso puedo actualizar sin problemas. Para que el cambio sea permanente y que no se repita el error, editamos /etc/sudoers agregando esto dentro:

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

Fuente: https://unix.stackexchange.com/questions/160019/dpkg-cannot-find-ldconfig-start-stop-daemon-in-the-path-variable

Lun, 06/08/2018 - 16:08
rockyiii
Imagen de rockyiii
Desconectado/a
administrator
se unió: 11/01/16

En realidad parece que hay un cambio de política en debian y a partir de debian buster se va a usar

su -

en lugar de

su

y si se quiere seguir usando el su solo hay que editar

su -
nano /etc/login.defs

y agregar el siguiente texto al final

ALWAYS_SET_PATH yes

fuente:  /usr/share/doc/util-linux/NEWS.Debian.gz

util-linux (2.32-0.4) unstable; urgency=medium

  The util-linux implementation of /bin/su is now used, replacing the
  one previously supplied by src:shadow (shipped in login package), and
  bringing Debian in line with other modern distributions. The two
  implementations are very similar but have some minor differences (and
  there might be more that was not yet noticed ofcourse), e.g.

  - new 'su' (with no args, i.e. when preserving the environment) also
    preserves PATH and IFS, while old su would always reset PATH and IFS
    even in 'preserve environment' mode.
  - su '' (empty user string) used to give root, but now returns an error.
  - previously su only had one pam config, but now 'su -' is configured
    separately in /etc/pam.d/su-l

  The first difference is probably the most user visible one. Doing
  plain 'su' is a really bad idea for many reasons, so using 'su -' is
  strongly recommended to always get a newly set up environment similar
  to a normal login. If you want to restore behaviour more similar to
  the previous one you can add 'ALWAYS_SET_PATH yes' in /etc/login.defs.

 -- Andreas Henriksson <andreas@fatal.se>  Fri, 03 Aug 2018 10:52:22 +0200

 

Lun, 06/08/2018 - 17:17
caliban
Imagen de caliban
Desconectado/a
moderador
se unió: 14/01/16

Bien, para quien quiera investigar diferencias   hagan esta comprobación 

su 
## y luego de logearse como root 
echo $PATH

luego  salir del terminal con   'exit'  y nuevamente en otro terminal 

su -
echo $PATH

 

Lun, 06/08/2018 - 17:31
moonwatcher
Imagen de moonwatcher
Desconectado/a
moderador
se unió: 21/01/16

Vale, la parte de editar /etc/sudoers no funciona. Tras reiniciar vuelve a salir el error logeandome con su. Asi que probare a acostumbrarme a usar su -.

Con su - funciona sin problemas.

We were but stones. Your light made us stars

https://linuxveredas.blogspot.com.es/

Lun, 06/08/2018 - 17:36
rockyiii
Imagen de rockyiii
Desconectado/a
administrator
se unió: 11/01/16

Otra alternativa es poner el path en nuestro .bashrc

echo "export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin" >> /home/usuario/.bashrc

https://blog.desdelinux.net/como-solucionar-error-dpkg-aviso-ldconfig-en-debian-testing/

Lun, 06/08/2018 - 17:45
caliban
Imagen de caliban
Desconectado/a
moderador
se unió: 14/01/16

Un comentario sobre seguridad hacia los novatos,  hagan previamente una copia de  ~/.bashrc 

cp /home/usuario/.bashrc   /home/usuario/.bashrc.copia 
## donde dice usuario reemplazar por tu usuario !!

De tal modo tendran un archivo original para reemplazar si dañan al modificarlo , ejemplo : 

Si al  ejecutar  

echo   bla bla bla >> /mi/archivo   
## agrega  bla bla bla  al contenido  de  /mi/archivo 

En cambio  si ejecutan :

echo  bla bla bla > /mi/archivo

Notese la diferencia entre  utilizar   

echo >> (append) agregar 

echo > sustituir 

Lun, 06/08/2018 - 23:36
gacs
Imagen de gacs
Conectado
colaborador
se unió: 21/04/16
$su
gacs# echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
$ su -
gacs:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

En mi caso utilizo leafpad para editar archivos del sistema, si utilizo su -, no puedo utilizar leafpad con los archivos del sistema, lo cual resolví editando el archivo root/.bashrc y agregando la siguiente linea.

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

no es mas una combinación de path de su y su -

 

 Saludos

 

Mar, 07/08/2018 - 12:36
caliban
Imagen de caliban
Desconectado/a
moderador
se unió: 14/01/16

Alternativa para usar un editor gráfico como root (cuidado!!)

SUDO_EDITOR=leafpad sudoedit <archivo>

(Sustituir  leafpad por el editor gráfico de preferencia )

Mar, 07/08/2018 - 14:32
rockyiii
Imagen de rockyiii
Desconectado/a
administrator
se unió: 11/01/16

otra opción para ese caso seria

pkexec leafpad

http://www.webupd8.org/2015/03/how-to-run-gedit-and-nautilus-as-root.html

parece que ahora no funciona crying

saludos...