22

我的开发服务器(CentOS 5)正在运行 Subversion 1.4.2,我希望将其升级到 1.5。我在网络上散布的各种博客和文档中读到,这可以通过使用 RPMForge 来完成。我已按照CentOS Wiki上的说明进行操作,包括安装 yum-priorities 并按照指示设置我的优先级(1 和 2 用于核心 repo 源,20 用于 RPMForge)。

但是,当我尝试运行时:

$ yum info subversion

给我的版本号仍然是 1.4.2,状态为已安装。此时我的另一个选择是从源代码编译,但我想找到一个包管理的解决方案以方便将来升级。

有什么想法吗?

4

9 回答 9

45

您要做的是将“核心”软件包(包含在 CentOS 存储库中的软件包)替换为来自“第 3 方”存储库 (RPMForge) 的较新软件包,这是优先级插件旨在防止的。

RPMForge 储存库包含 CentOS 中没有的额外组件,以及更新版本的核心组件。不幸的是,yum 它非常愚蠢,并且总是将包更新到它可以在任何存储库中找到的最新版本。因此,在启用 RPMforge 的情况下运行“ yum update”将使用来自 RPMForge 的最新(前沿,可能不稳定且支持较少)软件包更新您系统的一半。

因此,使用 RPMForge 等 repos 的推荐方法是仅将它们与 yum 插件(如“priorites”)一起使用,这可以防止来自“高”优先级 repos 的包覆盖来自“低”优先级 repos 的包(“priority”的名称" 参数非常具有误导性)。通过这种方式,您可以从 RPMForge 安装额外的包(不在核心中),这是大多数人想要的。

现在到你原来的问题......

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

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

    yum --enablerepo=rpmforge install subversion
    

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

    这种方法的问题在于,如果 RPMForge 中的 subversion 包有更新,那么当 repo 被禁用时,您将看不到它。要使颠覆保持最新,您必须记住运行

    yum --enablerepo=rpmforge update subversion
    

    时。

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

    现在 yum 将表现得好像核心存储库中没有名为“subversion”的包,并愉快地从 RPMForge 安装最新版本。另外,运行时您将始终获得最新的 subversion 更新yum update

于 2008-09-18T21:21:05.510 回答
3

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 存储库升级 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的全部内容

于 2010-01-28T16:27:01.030 回答
2

谢谢马特 - 我们在 SVN 上也有唯一的 SVN 1.7 发行

您可能还想尝试uberSVN

于 2011-11-10T17:20:41.803 回答
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

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

编辑:哎呀,我的答案丢失了一部分。将其添加回上面。

于 2008-09-18T20:37:50.823 回答
1

目前我并不太担心其他过时的软件包,但正如您所见,没有可用的 Subversion 更新。

也没有任何来自rpmforge. 这是您的优先级设置。尝试禁用 yum-priorities (更改enabled=1enabled=0in /etc/yum/pluginconf.d/priorities.conf) - 然后它应该可以工作。

所以我想下一个问题是为什么优先级搞砸了……不过我不确定。

编辑:有关优先级的更多信息,请参阅8jean 的答案

于 2008-09-18T21:20:47.180 回答
0

它在 Dag 的存储库中最高为 v 1.4.6。

你可以试试Fedora 的 repo中的那个,或者对主存储库有一点耐心来升级它。

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

当 v1.5.0 发布到存储库时,您可以像以前一样删除构建的版本并使用 yum 安装。

于 2008-09-18T20:41:05.763 回答
0

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

# 名称:用于 Red Hat Enterprise 5 的 RPMforge RPM 存储库 - dag
# 网址:http://rpmforge.net/
[rpm锻造]
名称 = 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
gpg检查 = 1
优先级=20
于 2008-09-18T20:46:33.440 回答
0

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

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

加载“优先级”插件
加载“fastestmirror”插件
从缓存的主机文件加载镜像速度
 * epel:mirror.unl.edu
 * rpmforge:fr2.rpmfind.net
 * 基地:mirrors.portafixe.com
 * 更新:mirrors.portafixe.com
 * 插件:mirrors.portafixe.com
 * 额外内容: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 更新。

于 2008-09-18T20:58:32.617 回答
0

您需要做的就是获取此脚本。在 CentOS 5.3 上完美地为我工作

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

不,我不在那里工作,也没有任何从属关系……只是找到了它,并想我会让你们知道。

祝你好运。

于 2010-07-29T22:19:58.783 回答