Ubuntu で C プログラムをコンパイルしようとすると、次のエラーが発生します。
$ 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
上記の 4 つのコードは同じ出力を得ました。
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
これらすべてのコマンドを使用した後、コンパイル時に同じ致命的なエラーが発生します。
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
答え1
どういうわけか、Ubuntu のバージョンではなく、 の現在の Debian テスト バージョンになってしまいましたlibc6
。おそらくそれには理由があり、変更すると何かが壊れる可能性があります。
この時点では、2 つの選択肢があります。
libc6
Ubuntu バージョンにダウングレードします:sudo apt install libc6=2.27-3ubuntu1
これには関連パッケージのダウングレードも必要になります (どのパッケージかはわかりますが、少なくともと が
apt
あると思います)。libc-bin
locales
または
Debian テスト
libc6-dev
パッケージをインストールします。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 バージョンに戻すことをお勧めしますが、それによって他のより直接的な影響が出る可能性があります。