Recibo este error cuando intento compilar un programa C en Ubuntu:
$ gcc aa.c
aa.c:1:9: fatal error: stdio.h: No such file or directory
#include<stdio.h>
^--------
compilation terminated.
Intenté instalar libc6-dev
y obtuve esto:
$ sudo apt-get install libc6-dev
...
The following packages have unmet dependencies:
libc6-dev : Depends: libc6 (= 2.27-3ubuntu1) but 2.29-10 is to be installed
Depends: libc-dev-bin (= 2.27-3ubuntu1)
E: Unable to correct problelms, you have held broken packages.
Lo intenté:
sudo dpkg --configure -a
y no obtuve ningún resultado.
y
sudo apt-get install -f
y
sudo apt-get clean && sudo apt-get update
y
sudo apt-get upgrade
y
sudo apt-get dist-upgrade
Los cuatro códigos anteriores obtuvieron el mismo resultado:
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Después de usar todos esos comandos, aparece el mismo error fatal al compilar.
apt policy libc6-dev libc6
o/p:
libc6-dev:
Installed: (none)
Candidate: 2.27-3ubuntu1
Version table:
2.27-3ubuntu1 500
500 http://in.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
libc6:
Installed: 2.29-10
Candidate: 2.29-10
Version table:
*** 2.29-10 100
100 /var/lib/dpkg/status
2.27-3ubuntu1 500
500 http://in.archive.ubuntu.com/ubuntu bionic/main amd64 Packages
Respuesta1
De alguna manera terminaste con la versión de prueba actual de Debian libc6
, no con cualquier versión de Ubuntu. Presumiblemente hay una razón para esto, por lo que cambiarlo podría romper algo.
En este punto tienes dos opciones:
bajar
libc6
a la versión de Ubuntu:sudo apt install libc6=2.27-3ubuntu1
lo que también requerirá degradar los paquetes relacionados (
apt
le diré cuáles, pero imagino que tendría al menoslibc-bin
ylocales
)o
instale el
libc6-dev
paquete de prueba de Debian:wget http://ftp.fr.debian.org/debian/pool/main/g/glibc/libc6-dev_2.29-10_amd64.deb http://ftp.fr.debian.org/debian/pool/main/g/glibc/libc6-dev-bin_2.29-10_amd64.deb sudo apt install ./libc6-dev_2.29-10_amd64.deb ./libc6-dev-bin_2.29-10_amd64.deb
Recomendaría volver a la versión de Ubuntu, aunque sólo sea para simplificar la próxima actualización de su distribución, pero eso podría tener otras consecuencias más inmediatas.