yum 声称软件包已安装,但 docker 中没有文件

yum 声称软件包已安装,但 docker 中没有文件

我遇到了 yum 与 rpm 之间的一些奇怪行为,两者都声称要安装,但只有 rpm 真正创建了文件,而 yum 只是声称已安装。我不知道我做错了什么,以及为什么文件无法通过 yum 在 docker 中安装。

脚步:

docker run --rm -it centos:7

设置 yum 缓存,以便我们可以通过 yum 和 rpm 使用同一个文件

vi /etc/yum.conf
-> set keepcache=1

现在开始 yum install

yum install -y centos-indexhtml

修剪输出:

Installed:
  centos-indexhtml.noarch 0:7-9.el7.centos                                                                          

Complete!

现在这个包应该按照以下要求将文件安装到 /usr/share/doc/HTML 中https://rpmfind.net/linux/RPM/centos/7.7.1908/x86_64/Packages/centos-indexhtml-7-9.el7.centos.noarch.html

ll /usr/share/doc/HTML
ls: cannot access /usr/share/doc/HTML: No such file or directory

因此,让我们从 yum 中卸载此包,并使用 yum 缓存,然后直接从 RPM 安装

yum remove -y centos-indexhtml
(trimmed output)
Removed:
  centos-indexhtml.noarch 0:7-9.el7.centos                                                                          

Complete!
rpm -Uvh /var/cache/yum/x86_64/7/base/packages/centos-indexhtml-7-9.el7.centos.noarch.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:centos-indexhtml-7-9.el7.centos  ################################# [100%]

并验证文件是否存在:

ll /usr/share/doc/HTML
total 16
drwxr-xr-x 2 root root 4096 Jan 10 18:18 en-US
drwxr-xr-x 2 root root 4096 Jan 10 18:18 img
-rwxr-xr-x 1 root root 4833 May 16  2014 index.html

我使用 yum 时做错了什么?我没有收到任何错误,只是没有通过 yum 写入路径?

答案1

docker 中的配置yum略有不同:在同一个/etc/yum.conf文件中你会发现:

tsflags=nodocs

这意味着软件包不会安装其文档。在 docker 镜像中,大多数人的目标是拥有一个尽可能小的可运行应用程序,因此删除了文档文件。

通过直接使用rpm,您可以绕过此yum配置。

相关内容