Docker作为构建器,无法安装systemd头文件

时间:2016-04-14 18:05:26

标签: build docker systemd

我正在尝试根据官方的CentOS7图像更新Docker镜像。它用作Node.js项目的构建器。

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

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

由于

1 个答案:

答案 0 :(得分:7)

fakesystemd是CentOS Docker镜像中的一个特殊包,它满足了对Systemd的依赖,而没有实际安装Systemd(毕竟,你通常不需要容器中的init系统)。 yum info fakesystemd告诉我们更多信息:

  

最小的docker特定包,以满足systemd Provides:而无需在Docker镜像中安装systemd。它主要用于Docker镜像/容器。它不提供systemd包的任何功能 - 它只包含很少的重要目录和文件。 fakesystemd绝对不适用于完全可启动的操作系统!

     

要在映像中安装real systemd,您需要以这种形式运行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