我的开发服务器(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中安装额外的软件包(不在核心中),这是大多数人想要的。
现在到你原来的问题
如果你想更换一个核心软件包,事情会变得有点棘手。 基本上,你有两个选择:
卸载优先级插件,并在默认情况下禁用 RPMForge存储库(在/etc/yum.repos.d/rpmforge.repo
设置enabled = 0
)。 然后,您可以在命令行上选择性地启用它:
yum --enablerepo=rpmforge install subversion
将从RPMForge安装最新的Subversion和依赖项。
这种方法的问题是,如果RPMForge中的subversion软件包有更新,当repo被禁用时,你将看不到它。 要保持颠覆最新,你必须记得运行
yum --enablerepo=rpmforge update subversion
时。
第二种可能性是使用高级插件,但手动“屏蔽”核心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
不,我不在那里工作,或者从来没有任何关系…只是发现它,并认为我会让你们知道。
祝你好运。