Docker作为一个builder,不能安装systemd头文件

我正在尝试更新基于官方CentOS7映像的Docker镜像。 它被用作Node.js项目的构build器。

我需要添加systemd-devel软件包来编译一些依赖项,但是会失败,出现以下错误:

fakesystemd-1-17.el7.centos.noarch has installed conflicts systemd: fakesystemd-1-17.el7.centos.noarch

谢谢

fakesystemd是CentOS Docker映像中的一个特殊软件包,在不实际安装Systemd(毕竟,通常不需要容器内的init系统)的情况下满足对fakesystemd的依赖性。 yum info fakesystemd讲述了更多:

最小docker特定的软件包,以满足systemd Provides:不需要在Docker镜像中安装systemd。 它旨在严格用于Docker镜像/容器。 它不提供systemd软件包的任何function – 它只包含一些重要的目录和文件。 fakesystemd绝对不适用于完整的可引导操作系统!

要在映像中安装真实的systemd,您需要以下面的forms运行yum swap命令:

 yum swap -- remove fakesystemd -- install systemd systemd-libs 

您需要将fakesystemd软件包与“真正的” systemd软件包交换,然后才能安装systemd-devel

 RUN yum swap -y fakesystemd systemd && \ yum install -y systemd-devel