重建RHEL 8.1的LibreOffice SRPM:构建依赖bsh等未找到?
解决RHEL 8.1重建LibreOffice RPM时的依赖找不到问题
我完全懂你的困惑——明明系统里装着官方打包好的LibreOffice,自己动手重建RPM时却找不到必要的构建依赖,这确实有点让人挫败。不过别担心,这是RHEL仓库设计的正常情况,下面给你一步步解决:
问题根源
RHEL的默认软件仓库(BaseOS和AppStream)只包含供最终用户日常使用的软件包,而像bsh这类构建工具/依赖,被放在了专门的CodeReady Builder仓库里,这个仓库默认是不启用的,所以你用dnf搜索时找不到它。
解决步骤
1. 启用CodeReady Builder仓库
首先需要通过订阅管理器启用这个存放构建依赖的仓库:
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
如果你的系统是其他架构,把命令里的x86_64换成对应架构名称即可。
2. 自动安装所有构建依赖
手动逐个安装依赖不仅麻烦,还容易遗漏。Red Hat提供了dnf builddep命令,可以直接解析spec文件里的所有构建依赖并自动完成安装:
cd SPECS sudo dnf builddep libreoffice.spec
这个命令会帮你搞定包括bsh、glm-devel、gpgmepp-devel在内的所有缺失依赖。
3. 重新执行构建
等所有依赖安装完成后,再运行构建命令就应该能正常进行了:
rpmbuild -ba libreoffice.spec
额外提示
如果启用仓库后还是遇到依赖找不到的情况,可以先刷新一下仓库缓存再尝试:
sudo dnf clean all && sudo dnf makecache
要是问题依旧,记得检查你的RHEL订阅是否包含CodeReady Builder仓库的访问权限。
内容的提问来源于stack exchange,提问作者Ed Avis
相关产品推荐
相关产品推荐

