一般来说,各种博客的更新yum源步骤都是(这里以centos6.9 / ali yum源为例)
1: yum -y install wget
2: mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
3: cd /etc/yum.repos.d/
4: wget http://mirrors.aliyun.com/repo/Centos-6.repo
5: yum makecache
问题来了,许多博客都有这一步
6: yum -y update
这一步更新了内核,软件以及rpm包。不明白意义何在?在makecache这一步执行之后,就已经有了缓存了,rpm包也是最新的,至于更新内核,软件的意义?如下是更新截图
其实我更推荐用
yum upgrade
取代yum update
,yum update
只更新系统中已有的软件包,不会更新内核软件包(kernel-
这个包),yum upgrade
是更彻底的update
,会分析包的废弃关系,可以跨小版本升级(比如从centos 7.1升级到centos 7.4),除了做了yum update
完全相同的事之外,还会更新kernel-
的包,也会卸载掉已经废弃的包。新部署系统需要yum update/upgrade是因为yum不会给你解决依赖冲突(但是apt会)。
举个例子,你的系统中已经安装了
kernel-2.6.32.500
,但是你要安装的某个软件包依赖于kernel-2.6.32.600
,此时yum会报错退出,告诉你依赖不满足,并不会升级kernel包(只是举个例子而已,实际上几乎没有软件包直接依赖于kernel包),所以你只能yum update/upgrade一次,把系统中所有的软件包全部更新,这样满足新部署的软件包的依赖。在debian/ubuntu的系统中,apt会对这种情况自动处理,会自动升级依赖的软件包。
换句话来说,对于新部署的服务器,也是推荐upgrade全部的软件包,已获得最新的安全补丁。即使对于已经上线的服务器,也是推荐定期打安全漏洞补丁,减少漏洞带来的侵害。