libc-devのインストールに問題があります

libc-devのインストールに問題があります

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

出力:

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

libc6どういうわけか、Ubuntuバージョンの代わりに現在のDebianベータバージョンを使用します。おそらくここには理由がありますので、変更すると問題が発生する可能性があります。

この時点では、2つのオプションがあります。

  • libc6Ubuntuバージョンへのダウングレード:

    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
    

次のDistroアップグレードを簡単にするためにのみUbuntuバージョンに戻すことをお勧めします。しかし、これはより即時の結果をもたらす可能性があります。

関連情報