如何在RHEL 8上安装Snap?及RHEL 8.4安装Snapd依赖冲突报错的解决求助
在RHEL 8上安装Snap及解决依赖冲突问题
首先,先给你梳理下RHEL 8系统上安装Snap的常规步骤,再针对性解决你遇到的依赖报错问题。
一、RHEL 8安装Snap的标准流程
Snap在RHEL生态里需要依赖EPEL仓库,所以先完成仓库配置:
- 安装并启用EPEL仓库:
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm - 安装snapd包:
sudo dnf install snapd - 启用并启动snapd的socket服务:
sudo systemctl enable --now snapd.socket - (可选)创建经典Snap的软链接,方便使用经典模式的Snap应用:
sudo ln -s /var/lib/snapd/snap /snap
二、解决你的RHEL 8.4依赖冲突问题
你遇到的报错核心很明确:当前系统的selinux-policy-base版本是3.14.3-67.el8_4.2,而你要安装的snapd-2.54.1-1.el8对应的snapd-selinux需要至少3.14.3-80.el8_5.2版本的selinux-policy-base——这个版本是RHEL 8.5及以后系统的标准包,所以你的8.4系统自然满足不了。
下面给你几个可行的解决办法:
方案1:升级系统到RHEL 8.5或更高版本(推荐)
这是最稳妥的长期解决方案,升级系统后会自动获取到符合要求的selinux政策包,后续安装Snap就不会有依赖问题:
- 执行系统升级:
sudo dnf update -y - 升级完成后确认系统版本:
cat /etc/redhat-release - 之后再按照上面的标准流程安装Snap即可。
方案2:安装适配RHEL 8.4的旧版snapd
如果暂时不想升级系统,可以选择安装针对RHEL 8.4编译的snapd版本(比如2.53.x系列),这个版本的snapd-selinux不会要求8.5的selinux政策:
- 直接安装适配版本的snapd和snapd-selinux:
sudo dnf install snapd-2.53.4-1.el8.x86_64 snapd-selinux-2.53.4-1.el8.noarch - 如果dnf找不到这个包,可以手动从EPEL的归档源获取对应rpm文件,然后用
rpm -i命令安装。 - 安装完成后同样执行
sudo systemctl enable --now snapd.socket启用服务。
方案3:跳过依赖安装(不推荐)
仅建议在测试环境临时使用,因为跳过依赖可能导致selinux政策冲突,影响系统安全和Snap的功能:
- 使用
--skip-broken参数强制安装snapd:sudo dnf install snapd --skip-broken - 这种方式会跳过
snapd-selinux的安装,Snap的部分安全功能可能无法正常工作。
验证安装结果
安装完成后,运行以下命令确认Snap是否正常工作:
snap version
正常输出应该包含snap、snapd的版本信息,以及对应的系统版本。
内容的提问来源于stack exchange,提问作者Rupam Bhattacharjee




