我的开发服务器(CentOS 5)正在运行Subversion 1.4.2,我希望将其升级到1.5。我已经阅读了分散在网络上的各种博客和文档,这可以通过使用RPMForge来完成。我已按照CentOS Wiki上的说明进行操作,包括安装yum-priority并设置我指定的优先级(核心回购源为1和2,RPMForge为20)。
但是,当我尝试运行时:
$ yum info subversion
给我的版本号仍为1.4.2,状态为已安装。此时我的另一个选择是从源代码编译,但我想找到一个软件包管理的解决方案,以便于将来升级。
有什么想法吗?
答案 0 :(得分:45)
你要做的是更换一个“核心”包(一个是核心包) 包含在CentOS存储库中的新版软件包来自“3rd” 派对“存储库(RPMForge),这是优先插件 旨在防止。
RPMForge存储库包含未找到的其他软件包
CentOS,以及更新版本的核心软件包。不幸的是,yum
是非常愚蠢的,将始终将包更新到最新版本
它可以在任何存储库中找到。所以用RPMforge运行“yum update
”
启用将使用最新版本更新系统的一半(前沿,
来自RPMForge的可能不稳定且支持不太好的软件包。
因此,推荐使用像RPMForge这样的repos的方法就是使用它们 只有像“优先”这样的yum插件才能防止 来自“高”优先级回购的包裹覆盖来自“低”的那些 优先级回购(“优先级”参数的名称非常 误导)。通过这种方式,您可以节省安装其他包(即 来自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
第二种可能性是使用优先插件,但需要手动操作
“掩盖”核心的subversion包(添加exclude=subversion
到
[base]
中的[update]
和/etc/yum.repos.d/CentOS-Base.repo
部分。
现在yum的行为就好像没有名为“subversion”的包
核心存储库,并愉快地安装最新版本
RPMForge的。此外,您将始终获得最新的颠覆更新
在运行yum update
。
答案 1 :(得分:3)
1.-如果您使用yum-priorities,请在文件/etc/yum/pluginconf.d/priorities.conf
2.-检查subversion的版本
$ 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存储库升级subversion的程序
$ 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
答案 2 :(得分:2)
答案 3 :(得分:1)
如果您安装了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
请检查您的来源列表并再次运行check-update。
编辑:哎呀,丢失了部分答案。在上面添加了它。
答案 4 :(得分:1)
我现在并不过分关注其他过时的软件包,但正如您所看到的那样,没有可用的Subversion更新。
来自rpmforge
的任何套餐。这是您的优先设置。尝试禁用yum-priority(在enabled=1
中将enabled=0
更改为/etc/yum/pluginconf.d/priorities.conf
) - 然后它应该可以正常工作。
所以我猜下一个问题是为什么优先考虑搞砸了....虽然我不确定。
编辑:有关优先级的详情,请参阅8jean's answer。
答案 5 :(得分:0)
在Dag的存储库中达到v 1.4.6。
您可以尝试Fedora's repo中的那个或者对主存储库有一点耐心来升级它。
从源代码制作它很容易,在下载源代码包时请阅读INSTALL文件,请记住CentOS可能已移动到安装文件的位置。 (使用“rpm -ql subversion”查看旧文件的安装位置)。
当v1.5.0发布到存储库时,您可以删除您的构建版本并像以前一样使用yum进行安装。
答案 6 :(得分:0)
RPMForge已经在/etc/yum.repos.d/中作为rpmforge.repo,内容为:
# Name: RPMforge RPM Repository for Red Hat Enterprise 5 - dag # URL: 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 enabled = 1 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 priority=20
答案 7 :(得分:0)
我在/etc/apt/sources.list.d/rpmforge.list中有确切的行。
当我运行check-update时,我得到:
Loading "priorities" plugin Loading "fastestmirror" plugin Loading mirror speeds from cached hostfile * epel: mirror.unl.edu * rpmforge: fr2.rpmfind.net * base: mirrors.portafixe.com * updates: mirrors.portafixe.com * addons: mirrors.portafixe.com * extras: mirrors.portafixe.com 2202 packages excluded due to repository priority protections bzip2.i386 1.0.3-4.el5_2 updates bzip2-devel.i386 1.0.3-4.el5_2 updates bzip2-libs.i386 1.0.3-4.el5_2 updates libxml2.i386 2.6.26-2.1.2.6 updates libxml2-devel.i386 2.6.26-2.1.2.6 updates libxml2-python.i386 2.6.26-2.1.2.6 updates perl.i386 4:5.8.8-15.el5_2.1 updates sos.noarch 1.7-9.2.el5_2.2 updates tzdata.noarch 2008e-1.el5 updates
我现在并不过分关注其他过时的软件包,但正如您所看到的那样,没有可用的Subversion更新。
答案 8 :(得分:0)
您需要做的就是获取此脚本。在CentOS 5.3上完美地为我工作
http://wandisco.com/subversion/os/downloads
不,我不在那里工作,也没有任何联系......只是找到它并想通知我会让你们知道。
祝你好运。