yum相当于apt-get升级vs apt-get dist-upgrade?

我是一个* .deb的家伙,在pipe理RPM方面我觉得很不舒服。

我习惯在基于debian的服务器上运行apt-get upgrade ,进行“正常”升级和apt-get dist-upgrade允许内核升级或允许新的主要软件包版本升级。

在我pipe理的CentOS服务器上,我想要有一个类似的function,然而man yum似乎没有提供这样的行为。 而yum upgradeyum upgrade之间的差异似乎不是我所期待的。

到目前为止,我最好的方法是在/etc/yum.conf添加和删​​除以下设置:

 exclude=kernel* 

必须有一个更好的方法。 每个build议都会受到欢迎。

编辑:

yum的man页面描述和--obsoletes标志对我来说有点神秘。 所以,让我重新说一说我所理解的内容:我是否必须理解yum update不会安装新的内核,因为这意味着标记为当前的内核? 我可以假设yum upgradeapt-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 updateyum upgrade等同/等等。

如果你想在运行yum update时候避免内核yum update ,你可以只做yum --exclude=kernel* update 。 如果你想自动更新,但是你想避免自动内核升级,那么把这个exclude添加到yum.conf可能是正确的答案。

你的问题可能没有一个正确的答案。 当涉及到更新时,基于RHEL和RHEL的发行版与Debian开发者的哲学并不一样,所以这些工具不会鼓励相同的行为。

尝试

 # yum upgrade yum kernel # yum -y upgrade