Rpmdb チェックサムが正しくありません。 CentOS 7.2 Dockerイメージにgccをインストールしようとしています。

Rpmdb チェックサムが正しくありません。 CentOS 7.2 Dockerイメージにgccをインストールしようとしています。

それで、gccを含むDockerイメージを作成してみました。

RUN yum -y install gccDockerfileでこのコマンドを実行しています。

依存関係のインストール試行が最終的に失敗するまでパッケージをダウンロードします。

Rpmdb checksum is invalid: dCDPT(pkg checksums): glibc-headers.x86_64 0:2.17-157.el7_3.1 - u

出力は次のとおりです。

Dependencies Resolved

================================================================================
 Package              Arch         Version                  Repository     Size
================================================================================
Installing:
 gcc                  x86_64       4.8.5-11.el7             base           16 M
Installing for dependencies:
 cpp                  x86_64       4.8.5-11.el7             base          5.9 M
 glibc-devel          x86_64       2.17-157.el7_3.1         updates       1.1 M
 glibc-headers        x86_64       2.17-157.el7_3.1         updates       668 k
 kernel-headers       x86_64       3.10.0-514.6.2.el7       updates       4.8 M
 libgomp              x86_64       4.8.5-11.el7             base          152 k
 libmpc               x86_64       1.0.1-3.el7              base           51 k
 mpfr                 x86_64       3.1.1-4.el7              base          203 k
Updating for dependencies:
 glibc                x86_64       2.17-157.el7_3.1         updates       3.6 M
 glibc-common         x86_64       2.17-157.el7_3.1         updates        11 M
 libgcc               x86_64       4.8.5-11.el7             base           97 k

Transaction Summary
================================================================================
Install  1 Package  (+7 Dependent packages)
Upgrade             ( 3 Dependent packages)

Total download size: 44 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
--------------------------------------------------------------------------------
Total                                              2.3 MB/s |  44 MB  00:19     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : libgcc-4.8.5-11.el7.x86_64                                  1/14 
  Updating   : glibc-2.17-157.el7_3.1.x86_64                               2/14 
warning: /etc/nsswitch.conf created as /etc/nsswitch.conf.rpmnew
error: lua script failed: [string "%triggerin(glibc-common-2.17-106.el7_2.6.x86_64)"]:1: attempt to compare number with nil
Non-fatal <unknown> scriptlet failure in rpm package glibc-2.17-157.el7_3.1.x86_64
  Updating   : glibc-common-2.17-157.el7_3.1.x86_64                        3/14 
  Installing : mpfr-3.1.1-4.el7.x86_64                                     4/14 
  Installing : libmpc-1.0.1-3.el7.x86_64                                   5/14 
  Installing : cpp-4.8.5-11.el7.x86_64                                     6/14 
  Installing : libgomp-4.8.5-11.el7.x86_64                                 7/14 
  Installing : kernel-headers-3.10.0-514.6.2.el7.x86_64                    8/14 
  Installing : glibc-headers-2.17-157.el7_3.1.x86_64                       9/14 
  Installing : glibc-devel-2.17-157.el7_3.1.x86_64                        10/14 
  Installing : gcc-4.8.5-11.el7.x86_64                                    11/14 
  Cleanup    : glibc-2.17-106.el7_2.6.x86_64                              12/14 
  Cleanup    : glibc-common-2.17-106.el7_2.6.x86_64                       13/14 
  Cleanup    : libgcc-4.8.5-4.el7.x86_64                                  14/14

Rpmdb checksum is invalid: dCDPT(pkg checksums): glibc-headers.x86_64 0:2.17-157.el7_3.1 - u

The command '/bin/sh -c yum -y install gcc' returned a non-zero code: 1

答え1

Dockerイメージの作成中にこの問題が発生しました。最初にインストールするとyum-plugin-ovlファイルシステムが上書きされ、この問題を解決したのはDocker用yumプラグインです。

例:

... RUN yum -y update \ && yum -y install yum-plugin-ovl \ && yum -y install gcc ...

バラよりこのGitHubの問題修正に関する追加情報。

答え2

RUN rpm --rebuilddb && yum install gcc -y

関連情報