问题描述
尝试使用 microdnf 将 git 安装到 Redhat UBI 8 最小映像中失败。我已经将我认为的问题追溯到了 git 需要的 shadow-utils 的安装。尝试单独安装 shadow-utils 也会失败。在我将 git 添加到列表之前,我在安装其他常见构建环境工具时没有遇到任何问题,但它开始在 shadow-utils 上失败。
我可以通过使用非最小图像并使用 yum 而不是 microdnf 进行安装来解决这个问题。不过,这似乎应该有效。除了使用更大的图像之外,还有其他人有解决方法吗?
~$ docker run --rm -it registry.access.redhat.com/ubi8/ubi-minimal /bin/bash
[root@965febf561a2 /]# microdnf install shadow-utils
(microdnf:10): librhsm-WARNING **: 06:29:14.389: Found 0 entitlement certificates
(microdnf:10): librhsm-WARNING **: 06:29:14.390: Found 0 entitlement certificates
Downloading Metadata...
Downloading Metadata...
Downloading Metadata...
Package Repository Size
Installing:
libsemanage-2.9-3.el8.x86_64 ubi-8-baSEOs 168.6 kB
shadow-utils-2:4.6-11.el8.x86_64 ubi-8-baSEOs 1.3 MB
Transaction Summary:
Installing: 2 packages
Reinstalling: 0 packages
Upgrading: 0 packages
Removing: 0 packages
Downgrading: 0 packages
Downloading packages...
Running transaction test...
Installing: libsemanage;2.9-3.el8;x86_64;ubi-8-baSEOs
Installing: shadow-utils;2:4.6-11.el8;x86_64;ubi-8-baSEOs
error: Error -1 running transaction
解决方法
我不确定,但我相信这是因为您的内核太旧了。我在运行 Docker 18.06-1 的内核为 3.13.0-151 的 Ubuntu 14.04 机器上构建映像时遇到了完全相同的问题。相同的 Dockerfile 在内核 4.4.0-101 运行相同版本的 Docker 的 Ubuntu 16.04 机器上构建良好。我找不到这些主机之间的任何其他配置差异。