我正在尝试根据官方的CentOS7图像更新Docker镜像.它用作Node.js项目的构建器.
我需要添加systemd-devel
用于编译某些依赖项的包,但是这会失败并出现以下错误:
fakesystemd-1-17.el7.centos.noarch has installed conflicts systemd: fakesystemd-1-17.el7.centos.noarch
谢谢
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