我是一个* .deb的家伙,在pipe理RPM方面我觉得很不舒服。
我习惯在基于debian的服务器上运行apt-get upgrade ,进行“正常”升级和apt-get dist-upgrade以允许内核升级或允许新的主要软件包版本升级。
在我pipe理的CentOS服务器上,我想要有一个类似的function,然而man yum似乎没有提供这样的行为。 而yum upgrade和yum upgrade之间的差异似乎不是我所期待的。
到目前为止,我最好的方法是在/etc/yum.conf添加和删除以下设置:
exclude=kernel*
必须有一个更好的方法。 每个build议都会受到欢迎。
编辑:
yum的man页面描述和--obsoletes标志对我来说有点神秘。 所以,让我重新说一说我所理解的内容:我是否必须理解yum update不会安装新的内核,因为这意味着标记为当前的内核? 我可以假设yum upgrade与apt-get dist-upgrade相同或几乎相同吗?
编辑2
从apt-get upgrade我最喜欢的是它告诉我哪些包保留,所以我可以采取相应的行动; 或者使用apt-get dist-upgrade或者使用apt-get install package 。
所以在思考一下之后,我现在最好的方法是:禁用yum.conf中的废弃设置(如Steven Pritchard在他的回答中所述 ),并在第一时间yum update 。 一旦安装了所有的更新,运行第二个yum update --obsoletes检查哪些软件包已被保留,并根据其结果行事。
这会工作吗?
yum update最初只是升级包到新版本。 例如,如果foo-awesome已经过时,那么yum update不会提供从foo升级到foo-awesome 。 将--obsoletes标志添加到yum update使得它执行额外的检查以提供升级path。 yum upgrade被添加为(本质上) yum --obsoletes update 。 由于这是几乎所有人都需要的行为,configuration选项obsoletes=1被添加到默认的/etc/yum.conf ,使得任何最近的股票,Fedora / RHEL / CentOS上的yum update和yum upgrade等同/等等。
如果你想在运行yum update时候避免内核yum update ,你可以只做yum --exclude=kernel* update 。 如果你想自动更新,但是你想避免自动内核升级,那么把这个exclude添加到yum.conf可能是正确的答案。
你的问题可能没有一个正确的答案。 当涉及到更新时,基于RHEL和RHEL的发行版与Debian开发者的哲学并不一样,所以这些工具不会鼓励相同的行为。
尝试
# yum upgrade yum kernel # yum -y upgrade