如何在 CentOS 5 上升级到 Subversion 1.5?[关闭]
-
01-07-2019 - |
题
我的开发服务器(CentOS 5)正在运行 Subversion 1.4.2,我希望将其升级到 1.5。我在网络上散布的各种博客和文档中读到,这可以通过使用 RPMForge 来完成。我已按照上找到的说明进行操作 CentOS 维基, ,包括安装 yum-priorities 并按指示设置我的优先级(核心存储库源为 1 和 2,RPMForge 为 20)。
但是,当我尝试运行时:
$ yum info subversion
给我的版本号仍然是1.4.2,状态为Installed。此时我的另一个选择是从源代码编译,但我想找到一个包管理的解决方案,以便于将来的升级。
有什么想法吗?
解决方案
您要做的是用“第三方”存储库(rpmforge)的较新软件包替换一个“核心”软件包(一个包含在CentOS存储库中的软件包),这是优先插件旨在防止的。
RPMFORGE存储库既包含CentOS中找不到的其他软件包,也包含较新版本的Core软件包。很遗憾, yum
很愚蠢,并且会始终将软件包更新为它可以找到的最新版本 任何 存储库。于是跑了“yum update
“启用RPMFORGE将使用RPMFORGE的最新(可能不稳定的边缘,可能不稳定且支持良好的支持)更新系统的一半。
因此,使用rpmforge之类的使用存储库的推荐方法是将它们仅与诸如“ Priorites”之类的百胜插件一起使用,该插件可防止包装从“高”优先级存储库中覆盖“低”优先级存储库(优先级的名称) “参数非常误导)。这样你就可以保存安装了 额外的 来自RPMFORGE的软件包(不在核心中),这是大多数人想要的。
现在回答你原来的问题......
如果你 想 要更换核心包,事情会变得有点棘手。基本上,您有两种选择:
卸载优先插件,然后 禁用 默认情况下,rpmforge存储库(设置
enabled = 0
在/etc/yum.repos.d/rpmforge.repo
)。然后,您可以在命令行上有选择地启用它:yum --enablerepo=rpmforge install subversion
将从 RPMForge 安装最新的 subversion 和依赖项。
这种方法的问题是,如果在rpmforge中对颠覆软件包进行了更新,则在禁用回购时,您将看不到它。为了使 subversion 保持最新,你必须记住运行
yum --enablerepo=rpmforge update subversion
时。
第二种可能性是使用优先插件,但可以手动“掩盖”核心颠覆软件包(添加
exclude=subversion
到[base]
和[update]
中的部分/etc/yum.repos.d/CentOS-Base.repo
).现在,YUM将表现得好像没有包含“颠覆”的软件包在核心存储库中,并愉快地安装了rpmforge的最新版本。另外,运行时您将始终获得最新的颠覆更新
yum update
.
其他提示
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 的全部功能
如果你安装 RPM锻造的存储库,然后您应该能够获得更新的软件包 - 这对您不起作用?
您应该在 /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。
编辑:哎呀,我的答案丢失了一部分。将其添加回上面。
目前我并不太关心其他过时的软件包,但正如您所看到的,没有可用的 Subversion 更新。
也没有任何包裹来自 rpmforge
. 。这是您的优先级设置。尝试禁用 yum-priorities(更改 enabled=1
到 enabled=0
在 /etc/yum/pluginconf.d/priorities.conf
) - 那么它应该可以工作。
所以我想下一个问题是为什么优先级会搞砸......不过我对此并不确定。
编辑:看 8吉恩的回答 有关优先级的更多信息。
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 中有确切的行。
当我运行 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 更新。
您所需要做的就是获取此脚本。在 CentOS 5.3 上完美运行
http://wandisco.com/subversion/os/downloads
不,我不在那里工作,也没有任何隶属关系......刚刚找到它并想我会让你们知道。
祝你好运。