我的开发服务器(CentOS 5)正在运行Subversion 1.4.2,我希望将其升级到1.5.我已经阅读了分散在网络上的各种博客和文档,这可以通过使用RPMForge来完成.我已按照CentOS Wiki上的说明进行操作,包括安装yum-priority并按指示设置我的优先级(核心回购源为1和2,RPMForge为20).
但是,当我尝试运行时:
$ yum info subversion
给我的版本号仍为1.4.2,状态为已安装.此时我的另一个选择是从源代码编译,但我想找到一个软件包管理的解决方案,以便于将来升级.
有什么想法吗?
您要做的是将"核心"软件包(包含在CentOS存储库中的软件包)替换为来自"第三方"存储库(RPMForge)的新软件包,这是优先级插件旨在防止的.
RPMForge存储库包含CentOS中未找到的其他软件包,以及更新版本的核心软件包.不幸的是,yum
非常愚蠢,并且总是会将软件包更新到它可以在任何存储库中找到的最新版本.因此,在yum update
启用RPMforge的情况下运行" "将使用RPMForge中的最新(前端,可能不稳定且支持不太好)的软件包更新系统的一半.
因此,推荐使用像RPMForge这样的repos的方法是仅将它们与yum插件一起使用,例如"priorites",这可以防止"高"优先级repos的包覆盖那些来自"低"优先级repos("优先级"的名称) "参数非常误导.这样您就可以从RPMForge中保存安装其他软件包(不在核心中),这是大多数人想要的.
现在问你原来的问题......
如果你想要更换核心软件包,事情会变得有点棘手.基本上,您有两种选择:
卸载插件的优先级,并禁用默认RPMForge软件库(设置enabled = 0
在/etc/yum.repos.d/rpmforge.repo
).然后,您可以在命令行上有选择地启用它:
yum --enablerepo=rpmforge install subversion
将从RPMForge安装最新的subversion和依赖项.
这种方法的问题是,如果RPMForge中的subversion包有更新,则在禁用repo时您将看不到它.要使subversion保持最新,您必须记住要运行
yum --enablerepo=rpmforge update subversion
时.
第二种可能性是使用priorites插件,但手动"掩盖"核心subversion包(添加exclude=subversion
到
[base]
和[update]
部分/etc/yum.repos.d/CentOS-Base.repo
).
现在,yum的行为就好像核心存储库中没有名为"subversion"的包,并且很高兴从RPMForge安装最新版本.此外,您将始终在运行时获得最新的subversion更新yum update
.