HCRM博客

CentOS yum下载源码不安装技巧,先抱回家后细细研究

CentOS使用yum仅下载源码不安装的命令:把源码抱回家再慢慢炖

CentOS yum下载源码不安装技巧,先抱回家后细细研究-图1

CentOS使用yum仅下载源码不安装的命令:把源码抱回家再慢慢炖

CentOS yum下载源码不安装技巧,先抱回家后细细研究-图2

想给内核打补丁,却怕线上环境直接翻车?只想把源码拖回来慢慢研究,却被yum一把装到系统里?别急,CentOS的yum其实藏着一条“只看不碰”的暗道,一条命令就能把.src.rpm原封不动请进本地目录,不动现有包,不触发依赖,连编译痕迹都不留。下面就把这条暗道一次性说透,顺带把常见坑也填平。

为什么非要“只下不装”

线上机器跑的是定制内核,动一发牵全身;开发机又嫌网速慢,想先在本地镜像站把源码拖回去再分发;更有人想对比官方补丁和自己手改的差异,这时候任何“意外安装”都是灾难。yum默认行为是下载+安装,但给它加两枚开关,就能让它变成温顺的“下载器”。

核心命令:yumdownloader 搭配 -source

CentOS自带yum-utils小工具包,里面藏着yumdownloader。先确认装上:

yum -y install yum-utils

CentOS yum下载源码不安装技巧,先抱回家后细细研究-图3

接着一条指令:

yumdownloader --source 包名

就能把对应的.src.rpm扔进当前目录,不会触发任何安装动作。如果想把源码统一归拢,再加--destdir=/自定义路径,例如:

yumdownloader --source --destdir=/data/src httpd

执行完去看目录,只有httpd-*.src.rpm静静躺着,系统里原来的httpp纹丝不动。

老版本yum没有yumdownloader?用yum的“下载-only”兼容写法

极老系统可能没yum-utils,也可以让yum亲自出马:

yum install --downloadonly --downloaddir=/data/src 包名

注意,这条命令默认下载的是二进制rpm,要的是源码,需要再拼一层:

yum install --downloadonly --downloaddir=/data/src 包名*.src

yum会去找同名的source rpm,拉下来依旧不安装。缺点是要写全包名,不如yumdownloader简洁。

一次拉一整套内核源码示例

想研究当前运行内核的补丁,先查版本:

uname -r

假设输出“3.10.0-1160.el7”,直接:

yumdownloader --source --destdir=/data/src kernel-3.10.0-1160.el7

几分钟后,kernel-3.10.0-1160.el7.src.rpm就位。接着用rpm -ivh解包,再rpmbuild -bp打补丁目录,就能在~/rpmbuild/BUILD里随意折腾,原系统内核稳如老狗。

常见坑位提醒

1. 找不到source包:默认repo没启用source,手动打开/etc/yum.repos.d/CentOS-Sources.repo,把enabled=0改成1,再yum clean all。

磁盘爆满:kernel.src.rpm动辄两百兆,提前df -h看一眼/data/src够不够放。

权限问题:下载目录别放在root独占的700权限路径,普通用户想读都读不了。

版本号写错:tab补全最靠谱,手打少一个“el7”都会提示No package。

把源码转成可编译目录的下一步

src.rpm到手后,多数人想直接看代码:

rpm -ivh kernel-*.src.rpm

这会写入~/rpmbuild目录,接着:

cd ~/rpmbuild/SPECS && rpmbuild -bp kernel.spec

打完补丁的纯净源码就躺在BUILD/kernel-*/里,随便改、随便diff、随便编译模块,和系统正在跑的kernel互不干扰。

一条命令总结

记住这句就够:

yumdownloader --source --destdir=/任意路径 包名

不装、不依赖、不污染生产环境,源码想怎么看就怎么看。

附:最小化安装没yum-utils的快速自救

如果连yum-utils都没有,先:

rpm -q yum-utils || yum -y install yum-utils

内网环境也能提前在外网机用同样的命令把yum-utils及其依赖全部down下来,再scp进去rpm -ivh手动装,全程依旧不需要外网。

把这条命令写进脚本,结合cron每天凌晨拉最新安全补丁的src.rpm,第二天上班就能第一时间审补丁、打热补丁,再也不怕“一升级就炸服”。源码在手,节奏我有。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/42005.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~