web-dev-qa-db-ja.com

Debian:依存関係が満たされていないため、「apt install build-essential」が失敗する

Debian Stretch v9.11の使用。

Build-essentialをインストールしようとしましたが、満たされていない依存関係のために失敗します。

Sudo apt install build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 build-essential : Depends: libc6-dev but it is not going to be installed or
                            libc-dev
                   Depends: g++ (>= 4:6.3) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

apt-cacheポリシーは以下を示します:

apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http://security.debian.org/debian-security stretch/updates/non-free AMD64 Packages
     release v=9,o=Debian,a=oldstable,n=stretch,l=Debian-Security,c=non-free,b=AMD64
     Origin security.debian.org
 500 http://security.debian.org/debian-security stretch/updates/contrib AMD64 Packages
     release v=9,o=Debian,a=oldstable,n=stretch,l=Debian-Security,c=contrib,b=AMD64
     Origin security.debian.org
 500 http://security.debian.org/debian-security stretch/updates/main AMD64 Packages
     release v=9,o=Debian,a=oldstable,n=stretch,l=Debian-Security,c=main,b=AMD64
     Origin security.debian.org
 500 http://deb.debian.org/debian stretch/non-free AMD64 Packages
     release v=9.11,o=Debian,a=oldstable,n=stretch,l=Debian,c=non-free,b=AMD64
     Origin deb.debian.org
 500 http://deb.debian.org/debian stretch/contrib AMD64 Packages
     release v=9.11,o=Debian,a=oldstable,n=stretch,l=Debian,c=contrib,b=AMD64
     Origin deb.debian.org
 500 http://deb.debian.org/debian stretch/main AMD64 Packages
     release v=9.11,o=Debian,a=oldstable,n=stretch,l=Debian,c=main,b=AMD64
     Origin deb.debian.org

/etc/apt/sources.listに次のコンテンツがあります。

# deb cdrom:[Debian GNU/Linux 9.5.0 _Stretch_ - Official AMD64 DVD Binary-1 20180714-10:25]/ stretch contrib main

deb http://deb.debian.org/debian stretch main contrib non-free
deb-src http://deb.debian.org/debian stretch main contrib non-free

# deb http://deb.debian.org/debian stretch-updates main
# deb-src http://deb.debian.org/debian stretch-updates main


# deb http://deb.debian.org/debian-security/ stretch/updates main
# deb-src http://deb.debian.org/debian-security/ stretch/updates main

deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free

# add backports
# deb http://ftp.debian.org/debian stretch-backports main


# stretch-updates, previously known as 'volatile'
# A network mirror was not selected during install.  The following entries
# are provided as examples, but you should amend them as appropriate
# for your mirror of choice.
#
# deb http://deb.debian.org/debian/ stretch-updates main contrib
# deb-src http://deb.debian.org/debian/ stretch-updates main contrib

EDIT1:apt-cache policy libc6-devは以下を示します:

apt-cache policy libc6-dev
libc6-dev:
  Installed: (none)
  Candidate: 2.24-11+deb9u4
  Version table:
     2.24-11+deb9u4 500
        500 http://deb.debian.org/debian stretch/main AMD64 Packages
     2.24-11+deb9u1 500
        500 http://security.debian.org/debian-security stretch/updates/main AMD64 Packages

apt-cacheポリシーg ++は以下を示します:

apt-cache policy g++
g++:
  Installed: (none)
  Candidate: 4:6.3.0-4
  Version table:
     4:6.3.0-4 500
        500 http://deb.debian.org/debian stretch/main AMD64 Packages

EDIT2:私はdeb http://ftp.de.debian.org/debian buster main/etc/apt/sources.list.d/.mc.list

特定のバグ修正があった新しいmcをインストールする必要があったことを覚えています。

EDIT3:

apt update
Get:1 http://security.debian.org/debian-security stretch/updates InRelease [94.3 kB]
Ign:2 http://deb.debian.org/debian stretch InRelease
Hit:3 http://deb.debian.org/debian stretch Release
Fetched 94.3 kB in 1s (69.7 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.

apt upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

apt-get install --fix-broken
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

EDIT4:

Sudo apt install libc6-dev g++
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
libc6-dev : Depends: libc6 (= 2.24-11+deb9u4) but 2.27-6 is to be installed
Depends: libc-dev-bin (= 2.24-11+deb9u4) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Sudo apt install build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
build-essential : Depends: libc6-dev but it is not going to be installed or
libc-dev
Depends: g++ (>= 4:6.3) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

編集5

Sudo aptitude -f install build-essential
The following NEW packages will be installed:
build-essential dpkg-dev{a} fakeroot{a} g++{a} g++-6{a} libalgorithm-diff-Perl{a} libalgorithm-diff-xs-Perl{a} libalgorithm-merge-Perl{a} libc-dev-bin{ab} libc6-dev{ab} libdpkg-Perl{a} libfakeroot{a} libfile-fcntllock-Perl{a} libstdc++-6-dev{a} linux-libc-dev{a} manpages-dev{a} 0 packages upgraded, 16 newly installed, 0 to remove and 0 not upgraded. Need to get 17.9 MB of archives. After unpacking 69.7 MB will be used.
The following packages have unmet dependencies:
libc6-dev : Depends: libc6 (= 2.24-11+deb9u4) but 2.27-6 is installed
libc-dev-bin : Depends: libc6 (< 2.25) but 2.27-6 is installed
The following actions will resolve these dependencies:

Keep the following packages at their current version:
1) build-essential [Not Installed]
2) g++ [Not Installed]
3) g++-6 [Not Installed]
4) libc-dev-bin [Not Installed]
5) libc6-dev [Not Installed]
6) libstdc++-6-dev [Not Installed]

Leave the following dependencies unresolved:
7) dpkg-dev recommends build-essential



Accept this solution? [Y/n/q/?]
The following NEW packages will be installed:
dpkg-dev{a} fakeroot{a} libalgorithm-diff-Perl{a}
libalgorithm-diff-xs-Perl{a} libalgorithm-merge-Perl{a}
libdpkg-Perl{a} libfakeroot{a} libfile-fcntllock-Perl{a}
manpages-dev{a}
The following packages are RECOMMENDED but will NOT be installed: build-essential
0 packages upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
Need to get 5,267 kB of archives. After unpacking 8,773 kB will be used.
Do you want to continue? [Y/n/?]
Get: 1 http://deb.debian.org/debian stretch/main AMD64 libdpkg-Perl all 1.18.25 [1,287 kB]
Get: 2 http://deb.debian.org/debian stretch/main AMD64 dpkg-dev all 1.18.25 [1,595 kB]
Get: 3 http://deb.debian.org/debian stretch/main AMD64 libfakeroot AMD64 1.21-3.1 [45.7 kB]
Get: 4 http://deb.debian.org/debian stretch/main AMD64 fakeroot AMD64 1.21-3.1 [85.6 kB]
Get: 5 http://deb.debian.org/debian stretch/main AMD64 libalgorithm-diff-Perl all 1.19.03-1 [48.7 kB]
Get: 6 http://deb.debian.org/debian stretch/main AMD64 libalgorithm-diff-xs-Perl AMD64 0.04-4+b2 [11.6 kB]
Get: 7 http://deb.debian.org/debian stretch/main AMD64 libalgorithm-merge-Perl all 0.08-3 [12.7 kB]
Get: 8 http://deb.debian.org/debian stretch/main AMD64 libfile-fcntllock-Perl AMD64 0.22-3+b2 [35.3 kB]
Get: 9 http://deb.debian.org/debian stretch/main AMD64 manpages-dev all 4.10-2 [2,145 kB]
Fetched 5,267 kB in 0s (15.0 MB/s)
Selecting previously unselected package libdpkg-Perl.
(Reading database ... 38475 files and directories currently installed.)
Preparing to unpack .../0-libdpkg-Perl_1.18.25_all.deb ...
Unpacking libdpkg-Perl (1.18.25) ...
Selecting previously unselected package dpkg-dev.
Preparing to unpack .../1-dpkg-dev_1.18.25_all.deb ...
Unpacking dpkg-dev (1.18.25) ...
Selecting previously unselected package libfakeroot:AMD64.
Preparing to unpack .../2-libfakeroot_1.21-3.1_AMD64.deb ...
Unpacking libfakeroot:AMD64 (1.21-3.1) ...
Selecting previously unselected package fakeroot.
Preparing to unpack .../3-fakeroot_1.21-3.1_AMD64.deb ...
Unpacking fakeroot (1.21-3.1) ...
Selecting previously unselected package libalgorithm-diff-Perl.
Preparing to unpack .../4-libalgorithm-diff-Perl_1.19.03-1_all.deb ...
Unpacking libalgorithm-diff-Perl (1.19.03-1) ...
Selecting previously unselected package libalgorithm-diff-xs-Perl.
Preparing to unpack .../5-libalgorithm-diff-xs-Perl_0.04-4+b2_AMD64.deb ...Unpacking libalgorithm-diff-xs-Perl (0.04-4+b2) ...
Selecting previously unselected package libalgorithm-merge-Perl.
Preparing to unpack .../6-libalgorithm-merge-Perl_0.08-3_all.deb ...
Unpacking libalgorithm-merge-Perl (0.08-3) ...
Selecting previously unselected package libfile-fcntllock-Perl.
Preparing to unpack .../7-libfile-fcntllock-Perl_0.22-3+b2_AMD64.deb ...
Unpacking libfile-fcntllock-Perl (0.22-3+b2) ...
Selecting previously unselected package manpages-dev.
Preparing to unpack .../8-manpages-dev_4.10-2_all.deb ...
Unpacking manpages-dev (4.10-2) ...
Setting up libdpkg-Perl (1.18.25) ...
Setting up libfile-fcntllock-Perl (0.22-3+b2) ...
Setting up dpkg-dev (1.18.25) ...
Processing triggers for libc-bin (2.27-6) ...
Setting up libfakeroot:AMD64 (1.21-3.1) ...
Setting up libalgorithm-diff-Perl (1.19.03-1) ...
Processing triggers for man-db (2.7.6.1-2) ...
Setting up manpages-dev (4.10-2) ...
Setting up fakeroot (1.21-3.1) ...
update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode
Setting up libalgorithm-merge-Perl (0.08-3) ...
Setting up libalgorithm-diff-xs-Perl (0.04-4+b2) ...
Processing triggers for libc-bin (2.27-6) ...
[master 77f42a4] committing changes in /etc after apt run
13 files changed, 28 insertions(+)
create mode 120000 alternatives/faked.1.gz
create mode 120000 alternatives/faked.es.1.gz
create mode 120000 alternatives/faked.fr.1.gz
create mode 120000 alternatives/faked.sv.1.gz
create mode 120000 alternatives/fakeroot
create mode 120000 alternatives/fakeroot.1.gz
create mode 120000 alternatives/fakeroot.es.1.gz
create mode 120000 alternatives/fakeroot.fr.1.gz
create mode 120000 alternatives/fakeroot.sv.1.gz
create mode 100644 dpkg/shlibs.default
create mode 100644 dpkg/shlibs.override
create mode 100644 ld.so.conf.d/fakeroot-x86_64-linux-gnu.conf

Sudo aptitude -f install build-essential
The following NEW packages will be installed:
build-essential g++{a} g++-6{a} libc-dev-bin{ab}
libc6-dev{ab} libstdc++-6-dev{a} linux-libc-dev{a}
0 packages upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 12.6 MB of archives. After unpacking 60.9 MB will be used.
The following packages have unmet dependencies:
libc6-dev : Depends: libc6 (= 2.24-11+deb9u4) but 2.27-6 is installed
libc-dev-bin : Depends: libc6 (< 2.25) but 2.27-6 is installed
The following actions will resolve these dependencies:

Keep the following packages at their current version:
1) build-essential [Not Installed]
2) g++ [Not Installed]
3) g++-6 [Not Installed]
4) libc-dev-bin [Not Installed]
5) libc6-dev [Not Installed]
6) libstdc++-6-dev [Not Installed]



Accept this solution? [Y/n/q/?]
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.


apt install build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you haverequested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
build-essential : Depends: libc6-dev but it is not going to be installed or
libc-dev
Depends: g++ (>= 4:6.3) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

まだ同じ結果。

その間に、Debian v9.12にアップグレードしました。

apt --dry-run install libc6=2.24-11+deb9u4
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  glibc-doc locales
The following packages will be REMOVED:
  libc-bin locales Sudo
The following packages will be DOWNGRADED:
  libc6
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  libc-bin
0 upgraded, 0 newly installed, 1 downgraded, 3 to remove and 0 not upgraded.
Remv locales [2.27-6]
Remv libc-bin [2.27-6]
Remv Sudo [1.8.23-2]
Inst libc6 [2.27-6] (2.24-11+deb9u4 Debian:9.12/oldstable [AMD64])
Conf libc6 (2.24-11+deb9u4 Debian:9.12/oldstable [AMD64])

apt --dry-run install libc6=2.24-11+deb9u4

満たされていない依存関係を修正するにはどうすればよいですか?

1
klor

最後に私は別のフォーラムで助けを得ました: https://serverfault.com/a/1004951/302842

これは、問題のあるパッケージをダウングレードするためのソリューションでした。

apt install libc6/stretch libc6-dev/stretch libc-dev-bin/stretch libc-bin/stretch locales/stretch Sudo/stretch

ダウングレードは成功しました!

0
klor

ここでの問題は、ある時点で、新しいlibc6を含むソースからパッケージをインストールし、そのバージョンのlibc6がインストールされたことです。 libc6-devパッケージには2.24-11+deb9u4のバージョンがあるため、パッケージは壊れていますが、libc6パッケージは2.27-6にあります。これはおそらくあなたが言及したバスターリポジトリのせいです。

ここでの大きな問題は、バスターはdebianバージョンであるため、十分長い時間ソースに入れていた場合、多くのパッケージがシステムにインストールされている可能性があることです。 mcをインストールするためだけに本当にそれを持っているなら、解決策はより簡単かもしれません。

これがあなたができることです。

システムをバスターにアップグレードします。これは良い解決策ではないかもしれませんが、ソースをバスターに置き換えてdist-upgradeを実行すれば、すべてがうまくいくはずです。結局のところ、バスターは安定したリリースです。それでも、それは完全なシステムアップグレードであり、システムのインストール内容によっては、提供するサービスが中断される可能性があるため、考えてみてください。

libc6パッケージをダウングレードしてください。これはシステムを破壊する可能性があるため、注意してください。何をしているのかわからない限り、通常これを行うのは悪い考えです。このテキスト全体を読み、コマンドを盲目的にコピーしないでください。

バスターソースがコンピューター上でアクティブになっていた期間がわからないため、他のパッケージもアップグレードした可能性があります。最初に、適切なlibc6パッケージをインストールする必要があります。このパッケージには、バージョン2.24-11+deb9u4が必要です(投稿の出力に従って)。したがって、次のことを行う必要があります。

発行

apt --dry-run install libc6=2.24-11+deb9u4

コマンド。コマンド出力には、次のようなものが表示されます。

WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  e2fsprogs libext2fs2 (due to e2fsprogs) libc-bin

パッケージのリストは注意が必要かもしれませんが、それらすべてについて、apt-cache policyを使用して使用可能なバージョンを確認する必要があります。ローカルにインストールされていないバージョン番号が最も大きいものが必要です。バージョン番号を記録し、正確なバージョン番号のパッケージをインストールするように要求します。パッケージはaptコマンドに--dry-runスイッチを追加する必要があります。これは、パッケージが他のパッケージを順番に破壊する可能性があるためです(これは非常にまれですが、確認することをお勧めします)。 Stretchには存在しないlibext2fs2に遭遇するでしょう。無視してもかまいませんが、ダウングレードできない他のパッケージに遭遇した場合は、それらを記録し、後で調べる必要があります。通常、それらの削除はaptに処理させるのが安全です。

すべてのバージョン番号を取得したら、すべてのパッケージをaptに渡して、記録したバージョン番号を要求します。これにより、次のようなパッケージの長いリストが作成されます(リストが長くなる場合がありますが、 Busterリポジトリからインストールしたパッケージの数に応じて):

 apt --dry-run install e2fslibs=1.43.4-2+deb9u1 \
    e2fsprogs=1.43.4-2+deb9u1\
    libc-bin=2.24-11+deb9u4 \
    libc6=2.24-11+deb9u4

出力に「必須パッケージは削除されます」というメッセージが表示されない場合は、--dry-runスイッチなしでコマンドを安全に発行でき、システムに壊れたパッケージはありません。そのメッセージが表示された場合は、それらのパッケージもコマンドに含める必要があります。コマンドが必須パッケージの削除を試みなくなるまで繰り返します。ただし、いくつかのパッケージがアンインストールされるので、必要に応じて手動で再インストールすることをお勧めします(ただし、この時点では、(再)インストールによって問題やパッケージの破損が発生することはありません)。

そして、これが、システムで異なるバージョンのリポジトリを使用することが悪い考えである理由です。

3
Lacek

すべてのキャッシュデータをクリーンアップして、依存関係を手動でインストールすることができます。次に、パッケージをインストールしてくださいbuild-essential

$ Sudo apt-get clean
$ Sudo apt update
$ Sudo apt upgrade
$ Sudo apt install libc6-dev g++
$ Sudo apt install build-essential
0
ginerama