Mostrando entradas con la etiqueta dpkg. Mostrar todas las entradas
Mostrando entradas con la etiqueta dpkg. Mostrar todas las entradas

Como resolver dependencias rotas

Como resolver dependencias rotas de una instalación basada en Debian.

En una entrada anterior intentaba solucionar la instalación fallida de un paquete:

Resolver dependencias al instalar un paquete

Pero al desinstalar o purgar una aplicación, puede que por error se borró alguna librería de la que dependa otro programa o servicio. Una de las formas que nos recomienda el propio sistema es la ejecución del script:


sudo apt --fix-broken install


Dependencias rotas

 


Si no ha habido éxito, como fue mi caso ejecutaremos los siguientes comandos

Lo primero que haremos es intentar configurar paquetes que han sido desempaquetados, pero no configurados. Para ello ejecutaremos el siguiente comando en la terminal:


sudo dpkg --configure -a


Seguidamente limpiaremos la cache local de paquetes .deb 


sudo apt-get clean && sudo apt-get autoclean


Regeneramos la caché de los repositorios con el parámetro –fix-missing. De este modo intentaremos detectar y reparar problemas de dependencias en nuestro sistema operativo.


sudo apt-get update --fix-missing


Corregiremos las dependencias rotas. Para ello ejecutaremos el siguiente comando en la terminal: 


sudo apt-get install -f

 

En este punto mi problema se solucionó, restaurando el sistema y pudiendo ejecutar


sudo apt-get dist-upgrade


Para poder actualizar el sistema. 

E: Sub-process /usr/bin/dpkg returned an error code (1)

A la hora de hacer uso de apt-get bien para instalar, borrar, o actualizar el sistema. Al principio parece que toda va bien pero al final del proceso me indica que ha habido un error y me muestra:

E: Sub-process /usr/bin/dpkg returned an error code (1)

Al parecer al realizar las tareas cotidianas de actualización del sistema, algún paquete a quedado retenido y no permite continuar.

Uno de las formas que encontrado para poder liberar el proceso, que ha quedado atrapado. Es accediendo a la carpeta:

/var/lib/dpkg/info

En esta carpeta se recoge información sobre los paquetes instalados, o en proceso de instalación.

La solución es descubrir que paquete ha quedado retenido y borrar la información sobre el. Por ejemplo utilizando el comando

sudo apt-get update

Nos saldrá el paquete que está creando esta situación, seguido de E: Sub-process /usr/bin/dpkg returned an error code (1)

Accedemos al directorio:

cd /var/lib/dpkg/info

Y borramos los archivos relacionados con el paquete que ha quedado retenido. En mi caso eran varios y último era man-db

sudo rm man-db.*

Volvemos a actualizar las lista de paquetes:

sudo apt-get update

Y ya podemos actualizar nuestro sistema e instalar nuevos paquetes. 

Como instalar paquetes desde terminal

Para poder instalar el paquete alojado en nuestro disco duro utilizaremos el comando

dpkg Gestor de paquetes .deb para instalar aplicaciones Debian manualmente.

La sintaxis es muy sencilla:

sudo dpkg -i nombre_archivo.deb

  • sudo Ejecutara nuestro comando con privilegios de administrador
  • dpkg  Es una herramienta para instalar, compilar, eliminar y manipular los paquetes de Debian.
  • -i (install) Parámetro que indica que ha de realizar la acción de instalar
  • nombre_archivo.deb Nombre del paquete que hemos descargado previamente.

Usuario desconocido redis en el archivo statoverride

Uno de los problemas que arrastra Linux en la desinstalación de aplicaciones es que no se purgan completamente. Todos los archivos de configuración y librerías de las que dependia pernmanecen instaladas en el sistema. Eso, como ha sido en mi caso, puede causar un problema de secuestro de procesos. En este caso no podía instalar ni actualizar mi distribución Linux.

Mensaje de error al actualizar Linux


dpkg: erro fatal irrecuperable, abortando::
usuario desconocido 'redis' en el archivo statoverrride
E: Sub-process /usr/bin/dpkg returned an error code (2)
Un paquete no se puedo esntalar. Tratando de recuperrarlo:

Buscando al usuario 'redis' no aparece en el sistema lo único que encuentro es una referencia en el arranque del sistema Boot system : Systemd.

redis-server

Redis, que significa Remote Dictionary Server (servidor de diccionarios remoto), es un rápido almacén de datos clave-valor en memoria de código abierto que se puede utilizar como base de datos, caché, agente de mensajes y cola. El proyecto se inició cuando Salvatore Sanfilippo, el desarrollador original de Redis, trataba de mejorar la escalabilidad de su startup italiana. Redis ofrece ahora tiempos de respuesta inferiores al milisegundo, lo que permite que se realicen millones de solicitudes por segundo para aplicaciones en tiempo real de videojuegos, tecnología publicitaria, servicios financieros, sanidad e IoT. Redis es una opción muy habitual en aplicaciones de almacenamiento en caché, administración de sesiones, videojuegos, tablas de clasificación, análisis en tiempo real, datos geoespaciales, servicios de vehículos compartidos, chat/mensajería, streaming de contenido multimedia y publicación/suscripción.

Deshabilitamos el arranque automático. Redis no es un programa que se encuentre actualmente en mi sistema y al no haber purgado correctamente me esta impidiendo actualizarme.
La siguiente acción es acceder al archivo statoverride y borrar la linea creada por "usuario" "redis"

sudo nano /var/lib/dpkg/statoverride

Fichero statoverride
 

Buscando veo que el servidor se instaló al probar Steam. Asi que continuo con la desinstación y purga de redis-server
 
sudo apt-get purge redis-server
sudo apt-get purge redis-server
 

Una vez borrado la carpeta /home/usuario,/steam Ya podremos operar con normalidad y nos permite actualizar el sistema.

Webmin, salvavidas para los que no somos puritanos de la linea de comandos

No me considero puritano de la línea de comandos, incluso es desesperante 😣😱.
Si que es cierto que para la gestión de nuestro equipo, servidor local o remoto es una herramienta imprescindible; y nos permite un consumo mínimo de recursos.
Pero la carne es debil. Webmin es una herramienta para la gestión sistemas Unix, como GNU/Linux y OpenSolaris basado en web; si podremos utilizar el ratón 😈. Está escrito en Perl, se encuentra en español y como he dicho es vía web, con lo cual es multiplataforma.

Wiki Webmin


En la siguiente página se encuentra los distintos formatos de empaquetado para poder instalarlo en nuestro equipo
http://www.webmin.com/download.html
wegt  https://prdownloads.sourceforge.net/webadmin/webmin_1.900_all.deb
sudo dpkg -i webmin_1.900_all.deb
En mi caso la instalación en una Raspberry con el sistema operativo Raspbian no hubo ningún problema. Pero en Linux Mint 19.1 Cinnamon no resulto tan fácil y tuve que resolver dependencias con un paquete que faltaba.

Una vez instalado, accederemos desde nuestro navegador a la dirección ip que queremos administrar a través de protocolo seguro https y el puerto 10.000:

https://localhost:10000/

Puede ser que tu navegador te recuerde que la conexión no es privada, continuamos de todos modos.


Y solo nos quedará iniciar sesión como root o como el usuario que tengamos como administrador

Resolver dependencias al instalar un paquete

La instalación de paquetes en linux, en algunos casos, suele ser frustrante; sobre todo si el programa que queremos instalar tiene la necesidad de tener instalados previamente en nuestro equipo otros paquetes para que funcione.
Instalaciones incompletas nos bloquea el instalador para nuevos paquetes.
En mi caso instalado el paquete
sudo dpkg -i webmin_1.900_all.deb
Quedo incompleta su instalación, ya que dependía de la instalación de paquetes que no se encontraban en el sistema:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias     
Leyendo la información de estado... Hecho
Tal vez quiera ejecutar «apt --fix-broken install» para corregirlo.
Los siguientes paquetes tienen dependencias incumplidas:
 webmin : Depende: libauthen-pam-perl pero no está instalado
          Depende: apt-show-versions pero no está instalado
E: Dependencias incumplidas. Intente «apt --fix-broken install» sin paquetes (o especifique una solución).
Ejecutando el comando apt-get
sudo apt-get --fix-broken install
 Leyendo lista de paquetes... Hecho
Creando árbol de dependencias     
Leyendo la información de estado... Hecho
Corrigiendo dependencias... Listo
Se instalarán los siguientes paquetes adicionales:
  apt-show-versions libauthen-pam-perl
Se instalarán los siguientes paquetes NUEVOS:
  apt-show-versions libauthen-pam-perl
0 actualizados, 2 nuevos se instalarán, 0 para eliminar y 0 no actualizados.
1 no instalados del todo o eliminados.
Se necesita descargar 0 B/52,8 kB de archivos.
Se utilizarán 172 kB de espacio de disco adicional después de esta operación.
¿Desea continuar? [S/n] s
Seleccionando el paquete libauthen-pam-perl previamente no seleccionado.
(Leyendo la base de datos ... 367984 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar .../libauthen-pam-perl_0.16-3build5_amd64.deb ...
Desempaquetando libauthen-pam-perl (0.16-3build5) ...
Seleccionando el paquete apt-show-versions previamente no seleccionado.
Preparando para desempaquetar .../apt-show-versions_0.22.7ubuntu1_all.deb ...
Desempaquetando apt-show-versions (0.22.7ubuntu1) ...
Configurando libauthen-pam-perl (0.16-3build5) ...
Configurando apt-show-versions (0.22.7ubuntu1) ...
** initializing cache. This may take a while **
Configurando webmin (1.900) ...
Webmin install complete. You can now login to https://localhost:10000/
as root with your root password, or as any user who can use sudo
to run commands as root.
Fueron satisfechas las dependencias y terminando correctamente la instalación, en este caso, de Wemin

Instalar Packet Tracer de Cisco

Packet Tracer es un simulador de redes con el que crear, practicar, interactuar y programar.
Es una herramienta de Cisco para su Networking Academy.
La aplicación es multi-plataforma y en este caso explicaré como instalarlo bajo plataforma Linux resulta siempre 😔 más complicado.

La inscripción en gratuita, pero obligatoria para descargar la aplicación y su posterior utilización.


Descomprimimos descargado:
tar -xzvf Packet Tracer 7.2 for Linux 64 bit.tar.gz -C /cisco
Accedemos a la carpeta cisco y  ejecutamos el instalador:
./install
Welcome to Cisco Packet Tracer 7.2 Installation
Read the following End User License Agreement "EULA" carefully. You must accept the terms of this EULA to install and use Cisco Packet Tracer.
Press the Enter key to read the EULA.

                                                Cisco Packet Tracer
                                             Software License Agreement
IMPORTANT: PLEASE READ THIS CISCO PACKET TRACER SOFTWARE LICENSE AGREEMENT (THE
"AGREEMENT") CAREFULLY.  DOWNLOADING, INSTALLING OR USING THE CISCO PACKET TRACE
R SOFTWARE CONSTITUTES ACCEPTANCE OF THIS AGREEMENT.  IF YOU DO NOT AGREE TO ALL
 OF THE TERMS OF THIS AGREEMENT, THEN CISCO SYSTEMS, INC. ("CISCO") IS UNWILLING
 TO LICENSE THE SOFTWARE TO YOU AND YOU ARE NOT AUTHORIZED TO DOWNLOAD, INSTALL
OR USE THE SOFTWARE.
I. DISTRIBUTION RIGHTS.  The terms in this Section I (Distribution Rights) 
Deberemos aceptar los terminos de uso de la aplicación ⇪

Por defecto colocará nuestra instalación en el directorio...
Nos solicitará privilegios de administración si confiamos en realizar la instalación en la ubicación predeterminada.
You have accepted the terms to the EULA. Congratulations. Packet Tracer will now be installed.
Enter location to install Cisco Packet Tracer or press enter for default [/opt/pt]:
[sudo] contraseña para <usuario>:         
Installing into /opt/pt
Not able to create and copy files to /opt/pt
Should we try to gain root access with sudo? [Yn] y
Installing into /opt/pt
Copied all files successfully to /opt/pt
Creará un enlace  simbólico para facilitar el arranque de la aplicación
Should we create a symbolic link "packettracer" in /usr/local/bin for easy Cisco Packet Tracer startup? [Yn] y
Paso final:
Type "packettracer" in a terminal to start Cisco Packet Tracer
Writing PT7HOME environment variable to /etc/profile
Writing QT_DEVICE_PIXEL_RATIO environment variable to /etc/profile
Cisco Packet Tracer 7.2 installed successfully
Please restart you computer for the Packet Tracer settings to take effect

Para poder utilizar la aplicación Packet Tracer tenemos que satisfacer sus pendencias instalando la librería libpng 12
wget http://security.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.50-1ubuntu2.14.04.3_amd64.deb
wget http://security.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.50-1ubuntu2.14.04.3_i386.deb 

Realizamos la instalación de acuerdo con la arquitectura de nuestro dispositivo 32 ó 64 bits
dpkg -i libpng12-0_1.2.50-1ubuntu2.14.04.3_amd64.deb
Una vez reiniciemos nuestro equipo lanzaremos la aplicación:
packettracer