我正在尝试在基于 CentOS 6.5 的 Docker 容器中安装 Kolab 组件。乍一看,官方软件包的安装似乎没有问题。但之后,当我尝试运行安装脚本时,出现了几个错误。经过一番研究,我发现安装脚本尝试使用位于 中的 sql 模式文件/usr/share/doc/kolab-webadmin-3.1.5
。根据repoquery -l kolab-webadmin
,sql 文件确实包含在软件包中。但是,它没有安装。
我怀疑这在某种程度上是 Docker 的一个“功能”,它试图避免将不必要的文档文件安装到容器中,但却找不到有关它的任何信息。
有没有办法通过 yum 安装缺少的文件?
更新:
下面是一个最小的例子来说明这个问题:首先创建一个新的 centos 容器:
docker run -t -i centos:centos6 /bin/bash
在里面安装 yum-utils 包:
yum install -y yum-utils
之后,如果你使用 repoquery 检查 yum-utils 包的内容
repoquery -l yum-utils
您会注意到,该软件包包含 /usr/share/doc/yum-utils-1.1.30 下的文件。但是,此文件夹不存在。
答案1
我发现了文档未安装的原因:它不是 Docker 的功能,而是 CentOS Docker 映像的功能。Yum 和 rpm 配置都包含阻止安装的选项。可以通过在 Dockerfile 中添加以下行来禁用它们:
RUN sed -i '/excludedocs/d' /etc/rpm/macros.imgcreate
RUN sed -i '/nodocs/d' /etc/yum.conf