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

时间:2020-03-06 14:23:22  来源:igfitidea点击:

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

但是,当我尝试运行时:

$ yum info subversion

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

有什么想法吗?

解决方案

如果我们安装了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。

编辑:糟糕,我的答案丢了一部分。重新添加到上面。

在Dag的存储库中最高可达1.4.6版。

我们可以尝试从Fedora的存储库中尝试一个,也可以耐心等待主要存储库进行升级。

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

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

RPMForge已经以rpmforge.repo的形式存在于/etc/yum.repos.d/中,其内容为:

# 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

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

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

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更新。

I'm not overly concerned about the other outdated packages at the moment, but as you can see there is no Subversion update available.

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

因此,我想下一个问题是为什么优先级会把它搞砸...。不过,我不确定。

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

我们尝试做的是替换一个"核心"程序包(其中一个是
包含在CentOS存储库中)和来自"第3个
方"存储库(RPMForge),这是优先级插件
旨在防止。

RPMForge存储库包含两个其他软件包,它们在
CentOS,以及较新版本的核心软件包。不幸的是,yum
非常愚蠢,并且总是将软件包更新为最新版本
它可以在任何存储库中找到。因此,使用RPMforge运行" yum update"
启用后,系统的一半将更新为最新的(出血边缘,
可能来自RPMForge的不稳定和不太受支持的软件包)。

因此,建议使用诸如RPMForge之类的存储库的方法是使用它们
仅与yum插件(例如" priorites")一起使用,可以防止
来自"高"优先级存储库的软件包将覆盖"低"优先级存储库的软件包
优先级回购协议(" priority"参数的名称非常
误导)。这样,我们可以节省安装其他软件包(即
(不是核心)),这是大多数人想要的。

现在到原始问题...

如果要替换核心程序包,事情会有些棘手。
基本上,我们有两种选择:

  • 卸载优先级插件,并默认禁用RPMForge存储库(在/etc/yum.repos.d/rpmforge.repo中设置`enabled = 0')。然后,我们可以在命令行上有选择地启用它:
yum --enablerepo=rpmforge install subversion

将从RPMForge安装最新的Subversion和依赖项。这种方法的问题在于,如果RPMForge中有对Subversion包的更新,则在禁用存储库时将看不到该更新。为了使Subversion保持最新状态,我们必须记住运行

yum --enablerepo=rpmforge update subversion

时。

  • 第二种可能性是使用Priorites插件,但是手动"屏蔽"核心Subversion包(在/etc/yum.repos.d中的[base][update]节中添加exclude = subversion/ CentOS-Base.repo)。现在,yum的行为就好像核心存储库中没有名为" subversion"的软件包,并愉快地从RPMForge安装最新版本。另外,在运行yum update时,我们将始终获得最新的Subversion更新。

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存储库中搜索子版本的最新版本

$ 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上运行的全部功能

我们需要做的就是获取此脚本。在CentOS 5.3上对我来说非常完美

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

不,我不在那儿工作,也没有任何从属关系。。。找到它并想​​让大家知道。

祝你好运。