麒麟kylinV10系统yum源优化与rpm包管理实战
1. 麒麟kylinV10系统yum源优化实战第一次用麒麟kylinV10系统时最让我头疼的就是默认yum源速度慢得像蜗牛。记得有次安装个基础开发工具等了半小时进度条才动了一点点。后来发现通过优化yum源配置下载速度能提升10倍不止。下面就把我这几年在kylinV10上折腾yum源的经验全盘托出。1.1 系统环境确认在动手前先确认你的系统版本。打开终端输入cat /etc/kylin-release正常应该显示类似Kylin Linux Advanced Server release V10 (Tercel)的信息。我遇到过有人拿着V7的教程配置V10结果把系统搞崩的案例。再检查下架构uname -m麒麟系统常见的有x86_64和aarch64两种架构这个关系到后面选源时要对应下载。1.2 国内主流镜像源对比国内几个主流镜像站我都实测过清华源教育网线路最快电信联通也不错阿里源全国访问均衡企业环境首选华为源对麒麟系统兼容性最好中科大源华东地区响应最快建议企业内网用自建仓库个人开发可以用公有源。这是我整理的响应时间对比镜像源电信延迟联通延迟移动延迟清华28ms35ms62ms阿里22ms25ms58ms华为18ms30ms45ms1.3 具体换源步骤以更换华为源为例先备份原有配置sudo cp /etc/yum.repos.d/kylin_aarch64.repo /etc/yum.repos.d/kylin_aarch64.repo.bak下载新源配置注意替换架构sudo wget -O /etc/yum.repos.d/kylin_aarch64.repo https://mirrors.huaweicloud.com/repository/conf/Kylin-V10-Advanced-Server.repo清理缓存并重建sudo yum clean all sudo yum makecache这里有个坑要注意有些镜像站的repo文件里baseurl写的是$releasever变量在麒麟系统上可能解析错误。遇到这种情况直接手动改成V10就行。2. RPM包管理深度解析2.1 基础命令实操很多人只知道rpm -ivh安装包其实rpm的功能强大多了。我常用的组合命令# 查询已安装包 rpm -qa | grep python # 查看包内容 rpm -ql python3 # 验证包完整性 rpm -V python3 # 升级包保留配置 rpm -Uvh package.rpm # 强制安装慎用 rpm -ivh --force package.rpm2.2 依赖问题解决技巧最头疼的就是依赖地狱。上周有个同事为了装某个软件手动下了20多个依赖包。其实可以用这个命令自动解决yum deplist package.rpm | awk /provider:/ {print $2} | xargs yum install -y如果遇到循环依赖可以试试rpm -ivh --nodeps package.rpm但要注意这可能导致软件运行异常建议只在测试环境用。3. 第三方RPM包处理实战3.1 跨平台包转换当从pkgs.org下载的Ubuntu包无法直接安装时可以尝试用alien工具转换sudo yum install alien alien -r package.deb转换后记得检查依赖关系rpm -qpR package.rpm3.2 源码编译打包对于必须从源码编译的情况建议先用mock创建干净环境sudo yum install mock mock -r kylin-v10-aarch64 --init mock -r kylin-v10-aarch64 --install gcc make mock -r kylin-v10-aarch64 --copyin source.tar.gz /builddir/build mock -r kylin-v10-aarch64 --shell cd /builddir/build tar xf source.tar.gz打包spec文件编写要注意这些关键点%define _build_id_links none # 避免buildid冲突 BuildRequires: openssl-devel # 明确构建依赖 %{_mandir}/man1/*.1* # 包含手册页4. 企业级yum仓库搭建4.1 私有仓库配置在内网搭建仓库能大幅提升团队效率。用createrepo工具很简单sudo yum install createrepo mkdir -p /opt/yum-repo/{aarch64,x86_64} createrepo /opt/yum-repo/aarch64然后用nginx做文件服务server { listen 80; server_name yum.internal; root /opt/yum-repo; autoindex on; location / { allow 192.168.1.0/24; deny all; } }4.2 仓库维护技巧我习惯用这个脚本来同步外部源#!/bin/bash rsync -avz --delete rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/ /opt/yum-repo/x86_64/centos7 createrepo --update /opt/yum-repo/x86_64/centos7定期清理旧包可以节省空间find /opt/yum-repo -name *.rpm -mtime 365 -delete5. 疑难问题排查5.1 常见错误解决问题1Error: Package conflicts with existing package 解决方法rpm -e --justdb --nodeps conflicting-package问题2Header V3 RSA/SHA256 signature 需要导入密钥rpm --import https://mirrors.huaweicloud.com/kylin/RPM-GPG-KEY-kylin5.2 性能优化参数在/etc/yum.conf中加入这些配置能提升速度[main] cachedir/var/cache/yum/$basearch/$releasever keepcache1 debuglevel2 logfile/var/log/yum.log exactarch1 obsoletes1 plugins1 installonly_limit3 distroverpkgcentos-release最后说个真实案例某次生产环境yum卡死最后发现是DNS解析超时导致。在/etc/resolv.conf加上options timeout:1就能解决。这类问题往往不是yum本身的问题要多方面排查。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2488404.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!