麒麟系统下离线搭建本地yum仓库的完整指南
1. 麒麟系统离线环境搭建本地yum仓库的必要性在企业级Linux系统管理中麒麟系统作为国产操作系统的代表经常需要在内网隔离环境中部署。这时候传统的在线yum仓库就完全失效了我曾经在一个金融项目上就遇到过这样的困境——机房服务器完全隔离但需要批量部署数十个软件包。这时候搭建本地yum仓库就成了救命稻草。离线yum仓库的核心价值在于一次下载多次复用。你只需要在有外网的机器上下载好所有依赖包就能在内网环境中像使用在线仓库一样方便地安装软件。这比手动一个个安装rpm包要高效得多特别是处理复杂的依赖关系时优势明显。麒麟系统虽然基于CentOS但在实际操作中我发现有几个特殊点需要注意首先是默认的软件源地址不同其次是部分系统组件的命名规则有差异。不过好消息是标准的yum工具链在麒麟系统上都能完美运行包括createrepo这样的关键工具。2. 准备工作获取离线安装包2.1 在有外网的环境下载所需软件包假设我们需要安装vsftpd服务在有网络的麒麟系统上执行mkdir -p /opt/offline_packages yum install --downloadonly --downloaddir/opt/offline_packages vsftpd这个命令中的--downloadonly参数是关键它告诉yum只下载不安装。我建议一次性下载所有可能用到的软件包因为在内网环境反复传输文件很麻烦。比如可以这样批量下载yum install --downloadonly --downloaddir/opt/offline_packages \ vsftpd httpd mariadb-server php2.2 处理依赖关系的实用技巧实际操作中最大的坑就是依赖缺失。我有次漏下了openssl的某个子包导致整个安装失败。建议使用这个命令查看完整依赖树repoquery --requires --resolve vsftpd然后把列出的所有依赖包都加入下载列表。更保险的做法是直接下载整个组yum groupinstall --downloadonly --downloaddir/opt/offline_packages Development Tools3. 创建本地yum仓库3.1 传输文件到离线服务器将/opt/offline_packages目录打包后复制到离线服务器tar czvf offline_packages.tar.gz -C /opt offline_packages scp offline_packages.tar.gz rootoffline_server:/opt/在离线服务器上解压mkdir -p /opt/yum_repo tar xzvf /opt/offline_packages.tar.gz -C /opt/yum_repo3.2 使用createrepo构建仓库元数据首先确保createrepo工具已安装如果没安装需要先手动安装它的rpm包rpm -ivh createrepo-*.rpm然后生成仓库元数据cd /opt/yum_repo/offline_packages createrepo .这个过程会创建repodata目录里面存放着所有包的元信息。我遇到过仓库包含上千个包的情况createrepo耗时约15分钟这是正常现象。4. 配置yum客户端4.1 备份并修改repo文件先备份原有配置cd /etc/yum.repos.d mkdir backup mv *.repo backup/新建本地仓库配置cat local.repo EOF [local] nameLocal Yum Repository baseurlfile:///opt/yum_repo/offline_packages enabled1 gpgcheck0 EOF4.2 验证仓库可用性执行以下命令测试yum clean all yum makecache yum repolist如果看到local仓库被列出且状态正常就可以使用了。我习惯用这个命令查看仓库包含哪些包yum --disablerepo* --enablerepolocal list available5. 实际使用中的经验分享5.1 常见问题排查问题1提示找不到包 解决方法检查createrepo是否成功生成repodata确保baseurl路径完全正确。我遇到过路径多写了个斜杠导致失败的情况。问题2依赖关系不满足 这时需要回到有外网的机器用yum deplist命令找出缺失的依赖重新下载后更新仓库createrepo --update .5.2 仓库维护建议版本管理每次添加新包时建议新建日期命名的目录如20230815这样出现问题可以快速回滚。空间监控离线仓库会占用大量空间可以用这个命令查看大小du -sh /opt/yum_repo定期更新即使在内网环境也建议每季度更新一次基础软件包特别是安全相关的更新。多仓库管理可以创建多个.repo文件来分类管理不同用途的软件包比如[local-os]、[local-dev]等。6. 高级技巧扩展仓库功能6.1 使用HTTP共享仓库如果需要在多台服务器间共享可以用nginx搭建简单的文件服务器yum --disablerepo* --enablerepolocal install nginx systemctl start nginx ln -s /opt/yum_repo /usr/share/nginx/html/yum然后修改baseurl为baseurlhttp://服务器IP/yum/offline_packages6.2 制作自定义RPM包对于内部开发的软件可以打包成rpm放入仓库。推荐使用rpmbuild工具mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}编写spec文件后用以下命令构建rpmbuild -ba myapp.spec cp ~/rpmbuild/RPMS/x86_64/*.rpm /opt/yum_repo/offline_packages/ createrepo --update /opt/yum_repo/offline_packages在内网环境中一个稳定可靠的本地yum仓库能极大提升运维效率。刚开始搭建时可能会遇到各种依赖问题但只要按照这个流程仔细操作通常都能顺利解决。建议首次搭建成功后做个虚拟机快照方便后续恢复。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2425143.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!