如何升级到Subversion 1.5在CentOS 5上?

我的开发服务器(CentOS 5)运行Subversion 1.4.2,我希望升级到1.5。 我已经阅读了散布在networking上的各种博客和文档,这可以通过使用RPMForge来完成。 我遵循CentOS Wiki上的指示,包括安装yum -priority并按照指示设置我的优先级(核心repo源1和2,RPMForge 20)。

但是,当我尝试运行:

$ yum info subversion 

给我的版本号仍然是1.4.2,状态为已安装。 在这一点上我的另一个select是从源代码编译,但我想find一个软件包pipe理的解决scheme,以方便将来的升级。

有什么想法吗?

你要做的是用一个来自“第三方”存储库(RPMForge)的较新软件包替换一个“核心”软件包(包含在CentOS软件库中的软件包),这是优先级插件设计的目的。

RPMForge存储库包含CentOS中未找到的其他软件包以及较新版本的核心软件包。 不幸的是, yum是相当愚蠢的,并且总是将包更新到它可以在任何库中找到的最新版本。 所以启用了RPMforge的情况下运行“ yum update ”会使用RPMForge的最新版本(可能不稳定,支持不好)来更新系统的一半。

因此,像RPMForge这样推荐使用repos的方法是只将它们与yum插件一起使用,如“priorites”,这样可以防止软件包从“低”优先级回购(优先级回购)的优先回购“参数是非常误导的)。 这样,您可以从RPMForge中安装额外的软件包(不在核心中),这是大多数人想要的。

现在到你原来的问题

如果你更换一个核心软件包,事情会变得有点棘手。 基本上,你有两个选择:

  1. 卸载优先级插件,并在默认情况下禁用 RPMForge存储库(在/etc/yum.repos.d/rpmforge.repo设置enabled = 0 )。 然后,您可以在命令行上选择性地启用它:

     yum --enablerepo=rpmforge install subversion 

    将从RPMForge安装最新的Subversion和依赖项。

    这种方法的问题是,如果RPMForge中的subversion软件包有更新,当repo被禁用时,你将看不到它。 要保持颠覆最新,你必须记得运行

     yum --enablerepo=rpmforge update subversion 

    时。

  2. 第二种可能性是使用高级插件,但手动“屏蔽”核心Subversion软件包(将exclude=subversion添加到/etc/yum.repos.d/CentOS-Base.repo[base][update]部分) 。

    现在,yum的行为就好像在核心存储库中没有名为“subversion”的软件包,并且可以从RPMForge安装最新版本。 另外,运行yum update时,您将始终获得最新的颠覆yum update

1.-如果您正在使用yum-priorities,请在/etc/yum/pluginconf.d/priorities.conf文件中将其禁用

2.-检查颠覆的版本

  $ rpm -qa|grep subversion subversion-1.4.2-4.el5_3.1 subversion-1.4.2-4.el5_3.1 

3.-从rpmforge存储库中搜索最新版本的subversion

 $ yum --enablerepo=rpmforge check-update subversion subversion.x86_64 1.6.6-0.1.el5.rf rpmforge 

4.-现在程序升级与rpmforge库的颠覆

 $ yum shell >erase mod_dav_svn-1.4.2-4.el5_3.1 >erase subversion-1.4.2-4.el5_3.1 >install mod_dav_svn-1.6.6-0.1.el5.rf >install subversion-1.6.6-0.1.el5.rf.x86_64 >run 

这就是我运行centos 5.4的所有功能

感谢马特 – 我们也有SVN上SVN 1.7的唯一发行版。

你也可以尝试uberSVN 。

如果你安装RPMForge的回购,那么你应该能够得到一个新的包 – 这不适合你?

你应该在/etc/apt/sources.list.d中看到rpmforge.list,像这样:

 repomd http://apt.sw.be redhat/el$(VERSION)/en/$(ARCH)/dag 

我只是在一个干净的CentOS 5安装测试,和yum check-update显示

 subversion.i386 1.5.2-0.1.el5.rf rpmforge subversion-perl.i386 1.5.2-0.1.el5.rf rpmforge 

因此,请检查您的来源清单并再次运行检查更新。

编辑:哎呀,失去了我的答案的一部分。 上面添加了它。

目前我不太在意其他过时的软件包,但是你可以看到没有可用的Subversion更新。

也没有任何来自rpmforge软件包。 这是您的优先级设置。 尝试禁用yum-priorities(在/etc/yum/pluginconf.d/priorities.conf更改enabled=1 enabled=0 ) – 那么它应该工作。

所以我想下一个问题是为什么优先事项是搞砸了….我不知道这一点,虽然。

编辑:请参阅8jean的答案更多的优先事项。

它达到Dag的仓库中的1.4.6。

你可以试试Fedora的repo版本,或者对主版本库有点耐心的升级。

从源代码制作它很容易,请在下载源代码包时阅读INSTALL文件,请记住,CentOS可能已经移动到安装文件的位置。 (使用“rpm -ql subversion”来查看旧文件的安装位置)。

当v1.5.0发布到版本库时,你可以像以前一样删除你的内置版本并使用yum进行安装。

RPMForge已经在/etc/yum.repos.d/中作为rpmforge.repo,内容是:

 #名称:Red Hat Enterprise 5的RPMforge RPM存储库 -  dag
 #网址:http://rpmforge.net/
 [rpmforge软件]
 name = Red Hat Enterprise $ releasever  -  RPMforge.net  -  dag
 #baseurl = http://apt.sw.be/redhat/el5/en/$basearch/dag
 mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
 #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
启用= 1
保护= 0
 gpgkey = file:/// etc / pki / rpm -gpg / RPM -GPG-KEY-rpmforge -dag
 gpgcheck = 1
优先级= 20

我在/etc/apt/sources.list.d/rpmforge.list中有这个确切的行。

当我运行检查更新时,我得到:

加载“优先级”插件
加载“最快镜像”插件
从缓存的主机文件加载镜像速度
  * epel:mirror.unl.edu
  * rpmforge:fr2.rpmfind.net
  * base:mirrors.portafixe.com
  *更新:mirrors.portafixe.com
  *插件:mirrors.portafixe.com
  * extras:mirrors.portafixe.com
由于存储库优先级保护而被排除的2202软件包

 bzip2.i386 1.0.3-4.el5_2更新         
 bzip2-devel.i386 1.0.3-4.el5_2更新         
 bzip2-libs.i386 1.0.3-4.el5_2更新         
 libxml2.i386 2.6.26-2.1.2.6更新         
 libxml2-devel.i386 2.6.26-2.1.2.6更新         
 libxml2-python.i386 2.6.26-2.1.2.6更新         
 perl.i386 4:5.8.8-15.el5_2.1更新         
 sos.noarch 1.7-9.2.el5_2.2更新         
 tzdata.noarch 2008e-1.el5更新  

目前我不太在意其他过时的软件包,但是你可以看到没有可用的Subversion更新。

所有你需要做的就是得到这个脚本。 在CentOS 5.3上为我完美工作

http://wandisco.com/subversion/os/downloads

不,我不在那里工作,或者从来没有任何关系…只是发现它,并认为我会让你们知道。

祝你好运。