问题场景:安装或更新软件时,提示“conflicts with file from package”(如Docker与lvm2、gnome与grub2-common的冲突)。
解决方法:
/usr/lib/systemd/system/blk-availability.service冲突源于device-mapper与lvm2)。yum update grub2-common),再重新安装目标软件(如yum install fwupdate-efi或yum install docker-io)。yum remove docker docker-client docker-common),再安装新版本(yum install docker-ce docker-ce-cli containerd.io --allowerasing)。问题场景:CentOS系统自带Podman(容器引擎),与Docker安装冲突。
解决方法:
rpm -q podman确认是否安装。sudo yum remove podman卸载,避免与Docker抢占文件路径(如/usr/bin/docker)。问题场景:Docker使用OverlayFS存储驱动时,因SELinux策略或端口占用导致冲突。
解决方法:
sudo setenforce 0),验证是否为SELinux导致的问题;若问题消失,可永久禁用(修改/etc/selinux/config中的SELINUX=disabled)。netstat -tulnp | grep <端口号>),若占用则修改Docker端口配置(/etc/docker/daemon.json)。问题场景:多个进程或线程同时写入同一文件,导致数据混乱(如日志文件、配置文件)。
解决方法:
flock系统调用实现文件锁,确保同一时间仅一个进程写入(示例代码:打开文件后调用flock(fileno(fin), LOCK_EX)加排他锁,操作完成后调用flock(fileno(fin), LOCK_UN)解锁)。for file in *.txt; do newname="${file%.txt}_$(date +%s).txt"; mv "$file" "$newname"; done)。问题场景:CentOS系统版本与软件版本不兼容(如Docker EE与CentOS 7的兼容性问题)。
解决方法:
yum remove <旧软件包名>)。