¿Cómo arreglar los paquetes rotos retenidos?

21

Intentando instalar libssl-dev en ubuntu 14.04.2

$ make
fatal error: openssl/sha.h: No such file or directory
compilation terminated.

$ sudo apt-get install libssl-dev
The following packages have unmet dependencies:
 libssl-dev : Depends: zlib1g-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

$ sudo apt-get install zlib1g-dev
The following packages have unmet dependencies:
 zlib1g-dev : Depends: zlib1g (= 1:1.2.3.4.dfsg-3ubuntu4) but 1:1.2.8.dfsg-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

¿Cómo puedo eliminar el paquete retenido e instalar el correcto?

Sam Healey
fuente
¿Cuándo fue la última vez que corriste sudo apt updatey / o sudo apt upgrade?
DopeGhoti
Hola, he hecho ambos entre cada paso.
Sam Healey

Respuestas:

18

Primero, intente ingresar esto: sudo dpkg --configure -a

Esto contribuirá en gran medida a arreglar dependencias rotas. Si eso no es suficiente, intente: sudo apt-get install -f

Luego limpie y actualice: sudo apt-get clean && sudo apt-get update

Luego actualice: sudo apt-get upgrade (diga 'y' a las actualizaciones)

Si recibe un mensaje que dice que algunos paquetes están "retenidos", haga lo siguiente:

sudo apt-get dist-upgrade

Ahora haz estos dos comandos:

sudo apt-get purge zlib1g-dev
sudo apt-get autoremove

Luego, vea qué sucede cuando ingresa: sudo apt-get install libssl-dev

Si todavía no funciona, intente esto:

sudo aptitude install libssl-dev zliblg-dev=1:1.2.8.dfsg-1ubuntu1

Si todavía no funciona, abra Synaptic Package Manager (debería estar en su Iniciador. Si no puede encontrarlo, ingrese en la Terminal synaptic-pkexec).

Buscar zlib1g-dev. Si el cuadro junto a zlib1g-dev no es verde, haga clic en él y seleccione "Marcar para la instalación". Si ve más de una versión, elija 1:1.2.8.dfsg-1ubuntu1. Luego busque libssl-dev. Si el cuadro junto a libssl-dev no es verde, haga clic en él y seleccione "Marcar para la instalación".

Luego seleccione "Aplicar".

gracioso1
fuente
Hola gracias por responder Hice todo lo anterior y obtuve el mismo error que en mi publicación original. Cuando ejecuté la actualización, recibí el siguiente mensaje. Se han guardado los siguientes paquetes: linux-generic-lts-utopic linux-headers-generic-lts-utopic linux-image-generic-lts-utopic 0 actualizado, 0 recién instalado, 0 para eliminar y 3 no actualizado.
Sam Healey
lo que da apt-cache policy zlib1g-devygrep -P '^[ \t]*[^#[ \t]+' /etc/apt/sources.list /etc/apt/sources.list.d/*.list
@Bahamut ¿Estás seguro de que te refieres a "-P"? Para mí, me pongoE: Command line option 'P' [from -P] is not known.
gracioso1
@SamHealey Modifiqué un poco mi respuesta. Prueba lo que sugiero allí y cuéntanos cómo te va.
gracious1
1
@Bahamut ¿Por qué no sudo con programa gráfico?
gracious1
2

Debe buscar todos los archivos relacionados con su paquete y purgarlos, luego reinstalarlos.

sudo dpkg --list
sudo apt-get purge "file-name"

repita el segundo comando con cada archivo y luego vuelva a instalarlo.

Alex
fuente
0
sudo aptitude install lib_name_depending

funcionó para mí cuando quería instalar libcurl4-openssl-deven mi Ubuntu 14.04LTS.

No se instalaron varias bibliotecas dependientes en mi máquina, y con el uso de la herramienta aptitude, logré instalar / degradar interactivamente las bibliotecas / paquetes necesarios para poder instalar libcurl4-openssl-dev.

Danijel Hodzic
fuente