При попытке скомпилировать программу на языке C в Ubuntu я получаю следующую ошибку:
$ gcc aa.c
aa.c:1:9: fatal error: stdio.h: No such file or directory
#include<stdio.h>
^--------
compilation terminated.
Я попробовал установить libc6-dev
и получил это:
$ 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.
Я пробовал:
sudo dpkg --configure -a
, но не получил никакого результата.
и
sudo apt-get install -f
и
sudo apt-get clean && sudo apt-get update
и
sudo apt-get upgrade
и
sudo apt-get dist-upgrade
Четыре приведенных выше кода дали одинаковый результат:
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
После использования всех этих команд я получаю одну и ту же фатальную ошибку при компиляции.
apt policy libc6-dev libc6
о/п:
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
решение1
Вы каким-то образом оказались с текущей тестовой версией Debian libc6
, а не с какой-либо версией Ubuntu. Вероятно, на это есть причина, поэтому ее изменение может что-то сломать.
На этом этапе у вас есть два варианта:
Понижение
libc6
версии до Ubuntu:sudo apt install libc6=2.27-3ubuntu1
что также потребует понижения версии связанных пакетов (
apt
я скажу, каких именно, но я полагаю, что вам придется по крайней мереlibc-bin
иlocales
)или
установите тестовый
libc6-dev
пакет 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
Я бы рекомендовал вернуться к версии Ubuntu, хотя бы для того, чтобы упростить обновление вашего следующего дистрибутива, но это может иметь и другие, более непосредственные последствия.