Without a doubt, the Missing Dependency: perl(URI) error is the most annoying error to run into when doing a quick, so-called painless yum install of subversion. We use subversion here to handle all our source code and when rolling that code out to new servers. So it’s pretty important that all our Linux servers (all running CentOS) are equipped with subversion. But time and time again, I was running into this problem and finally, through many Google searches, and compiling tips from a variety of sites, found a method that works for us here. Hopefully it works for you too.
First, let me show you the exact problem. When you do a yum install subversion, you get something like this:
# yum install subversion Setting up Install Process Setting up repositories update 100% |=========================| 951 B 00:00 base 100% |=========================| 1.1 kB 00:00 addons 100% |=========================| 951 B 00:00 extras 100% |=========================| 1.1 kB 00:00 Reading repository metadata in from local files Excluding Packages in global exclude list Finished Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Package subversion.i386 0:1.1.4-2.ent set to be updated --> Running transaction check --> Processing Dependency: libneon.so.24 for package: subversion --> Processing Dependency: libswigpy.so.0 for package: subversion --> Processing Dependency: perl(URI) >= 1.17 for package: subversion --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Package neon.i386 0:0.24.7-4 set to be updated ---> Package swig.i386 0:1.3.21-6 set to be updated --> Running transaction check --> Processing Dependency: perl(URI) >= 1.17 for package: subversion --> Processing Dependency: libqthreads.so.12 for package: swig --> Processing Dependency: libguile.so.12 for package: swig --> Processing Dependency: libguile-ltdl.so.1 for package: swig --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Package guile.i386 5:1.6.4-14 set to be updated --> Running transaction check --> Processing Dependency: perl(URI) >= 1.17 for package: subversion --> Processing Dependency: umb-scheme >= 3.2-21 for package: guile --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Package umb-scheme.i386 0:3.2-36.EL4 set to be updated --> Running transaction check --> Processing Dependency: perl(URI) >= 1.17 for package: subversion --> Finished Dependency Resolution Error: Missing Dependency: perl(URI) >= 1.17 is needed by package subversion
And instead of yum being smart enough to find that dependency, it just ends. That’s it. There ain’t no more. And no search, upgrade or gentle persuasion will change it’s mind. So, first we get the annoying dependency that it refuses to get:
# wget http://rpmfind.net/linux/fedora/releases/7/Everything/x86_64/os/Fedora/perl-URI-1.35-3.noarch.rpm --10:20:17-- http://rpmfind.net/linux/fedora/releases/7/Everything/x86_64/os/Fedora/perl-URI-1.35-3.noarch.rpm Resolving rpmfind.net... 194.199.20.114, 195.220.108.108 Connecting to rpmfind.net|194.199.20.114|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 118607 (116K) [application/x-rpm] Saving to: `perl-URI-1.35-3.noarch.rpm' 100%[= ... ============================>] 118,607 214K/s in 0.5s 10:20:18 (214 KB/s) - `perl-URI-1.35-3.noarch.rpm' saved [118607/118607]
That version works for CentOS 5, which is what we use. If you have another version, just find the RPM from rpmfind.net. Once that’s downloaded, you just rpm install it:
# rpm -i perl-URI-1.35-3.noarch.rpm /etc/selinux/targeted/contexts/files/file_contexts: Multiple same specifications for /usr/local/lost+found/.*. /etc/selinux/targeted/contexts/files/file_contexts: Multiple same specifications for /usr/local/.journal. /etc/selinux/targeted/contexts/files/file_contexts: Multiple same specifications for /usr/local/lost+found. warning: perl-URI-1.35-3.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
The warning doesn’t affect anything that I can tell, so it’s installed and we are now ready to install subversion through yum again!
# yum install subversion Loading "fastestmirror" plugin Loading mirror speeds from cached hostfile * base: mirror.trouble-free.net * updates: www.gtlib.gatech.edu * addons: mirror.trouble-free.net * extras: mirror.trouble-free.net Excluding Packages in global exclude list Finished Setting up Install Process Parsing package install arguments Resolving Dependencies --> Running transaction check ---> Package subversion.i386 0:1.4.2-2.el5 set to be updated --> Processing Dependency: libneon.so.25 for package: subversion --> Processing Dependency: libapr-1.so.0 for package: subversion --> Processing Dependency: libaprutil-1.so.0 for package: subversion --> Running transaction check ---> Package apr-util.i386 0:1.2.7-7.el5 set to be updated --> Processing Dependency: libpq.so.4 for package: apr-util ---> Package neon.i386 0:0.25.5-5.1 set to be updated ---> Package apr.i386 0:1.2.7-11 set to be updated --> Running transaction check ---> Package postgresql-libs.i386 0:8.1.11-1.el5_1.1 set to be updated --> Finished Dependency Resolution Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: subversion i386 1.4.2-2.el5 base 2.3 M Installing for dependencies: apr i386 1.2.7-11 base 122 k apr-util i386 1.2.7-7.el5 base 76 k neon i386 0.25.5-5.1 base 95 k postgresql-libs i386 8.1.11-1.el5_1.1 base 196 k Transaction Summary ============================================================================= Install 5 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 2.8 M Is this ok [y/N]: y Downloading Packages: (1/5): apr-1.2.7-11.i386. 100% |=========================| 122 kB 00:00 (2/5): neon-0.25.5-5.1.i3 100% |=========================| 95 kB 00:00 (3/5): apr-util-1.2.7-7.e 100% |=========================| 76 kB 00:00 (4/5): subversion-1.4.2-2 100% |=========================| 2.3 MB 00:01 (5/5): postgresql-libs-8. 100% |=========================| 196 kB 00:00 ... Installing: apr ######################### [1/5] Installing: neon ######################### [2/5] Installing: postgresql-libs ######################### [3/5] Installing: apr-util ######################### [4/5] Installing: subversion ######################### [5/5] Installed: subversion.i386 0:1.4.2-2.el5 ... Complete!
And we are done! subversion is installed in spite of yum’s inability to find the appropriate rpms!
We had some issues with the URI library above however this one worked fine ftp://fr2.rpmfind.net/linux/dag/redhat/el2.1/en/i386/dag/RPMS/perl-URI-1.17-1.el2.rf.noarch.rpm
Thanks, Alex! Seems like RPMFind moved my file! I used the HTTP site because of some firewall issues with our network, so I guess I will have to refind it, but thank you for posting a valid FTP link.
Thanks for this! 😉
I ran
wget ftp://fr2.rpmfind.net/linux/dag/redhat/el2.1/en/i386/dag/RPMS/perl-URI-1.17-1.el2.rf.noarch.rpm
it returns
21:40:20 (864.72 KB/s) – `perl-URI-1.17-1.el2.rf.noarch.rpm’ saved [94140]
then I ran
yum install subversion
but it still returns
–> Missing Dependency: perl(URI) >= 1.17 is needed by package subversion-1.4.2-4.el5.i386 (base)
subversion-1.5.6-0.2.el5.rf.x86_64 from dag has depsolving problems
–> Missing Dependency: perl(URI) >= 1.17 is needed by package subversion-1.5.6-0.2.el5.rf.x86_64 (dag)
Error: Missing Dependency: perl(URI) >= 1.17 is needed by package subversion-1.5.6-0.2.el5.rf.x86_64 (dag)
Error: Missing Dependency: perl(URI) >= 1.17 is needed by package subversion-1.4.2-4.el5.i386 (base)
Any idea what I might be doing wrong
Thnx
Bart
Sorry, forgot to mention. I also ran
rpm perl-URI-1.17-1.el2.rf.noarch.rpm
before trying to install subversion
but it just returns info
RPM version 4.4.2.3
Copyright (C) 1998-2002 – Red Hat, Inc.
This program may be freely redistributed under the terms of the GNU GPL
Usage: rpm [-aKfgpWHqV] [-aKfgpWHqVcdils] [-aKfgpWHqVcdilsaKfgpWHqV] [-aKfgpWHqVcdilsaKfgpWHqV] [-aKfgpWHqVcdilsaKfgpWHqV] [-aKfgpWHqVcdilsaKfgpWHqVK] [-aKfgpWHqVcdilsaKfgpWHqVK] [-aKfgpWHqVcdilsaKfgpWHqVKi] [-aKfgpWHqVcdilsaKfgpWHqVKiv] [-aKfgpWHqVcdilsaKfgpWHqVKiv] [-aKfgpWHqVcdilsaKfgpWHqVKiv?] [-a|–all] [-f|–file] [-g|–group]
[-p|–package] [-W|–ftswalk] [–pkgid] [–hdrid] [–fileid]
[–specfile] [–triggeredby] [–whatrequires] [–whatprovides]
[–nomanifest] [-c|–configfiles] [-d|–docfiles] [–dump] [-l|–list]
[–queryformat=QUERYFORMAT] [-s|–state] [–nomd5] [–nofiles]
[–nodeps] [–noscript] [–comfollow] [–logical] [–nochdir]
[–nostat] [–physical] [–seedot] [–xdev] [–whiteout]
[–addsign] [-K|–checksig] [–delsign] [–import] [–resign]
[–nodigest] [–nosignature] [–initdb] [–rebuilddb] [–aid]
[–allfiles] [–allmatches] [–badreloc] [-e|–erase +]
[–excludedocs] [–excludepath=] [–fileconflicts] [–force]
[-F|–freshen +] [-h|–hash] [–ignorearch] [–ignoreos]
[–ignoresize] [-i|–install] [–justdb] [–nodeps] [–nomd5]
[–nocontexts] [–noorder] [–nosuggest] [–noscripts]
[–notriggers] [–oldpackage] [–percent] [–prefix=]
[–relocate==] [–repackage] [–replacefiles]
[–replacepkgs] [–test] [-U|–upgrade +] [–quiet]
[-D|–define ‘MACRO EXPR’] [-E|–eval ‘EXPR’] [–macros=]
[–nodigest] [–nosignature] [–rcfile=] [-r|–root ROOT]
[–querytags] [–showrc] [–quiet] [-v|–verbose] [–version]
[-?|–help] [–usage] [–scripts] [–setperms] [–setugids]
[–conflicts] [–obsoletes] [–provides] [–requires] [–info]
[–changelog] [–xml] [–triggers] [–last] [–dupes]
[–filesbypkg] [–fileclass] [–filecolor] [–filecontext]
[–fscontext] [–recontext] [–fileprovide] [–filerequire]
[–redhatprovides] [–redhatrequires] [–buildpolicy=]
[–with=] [–without=]
Yeah, Bart, you have to specify the -i parameter on the RPM command so it knows you want to install it, like so: rpm -i perl-URI-1.35-3.noarch.rpm
Do that and it should work, then run the yum install.
Pingback: apocryph.org » How to Install Subversion on FH CentOS 5 (it should be easy, but isn’t)
thx..it works for me.
I’m running Centos 5.2, here’s what worked for me:
wget http://yum.trixbox.org/centos/5/RPMS/perl-URI-1.35-3.noarch.rpm
Thanks Darren! Appreciate the input.
Uau! Thank you man! It’s save my life!!!
You are very welcome, Andre. Anything to help out!
I had the same exact problem. It seems yum itself specifically excludes perl* from installing. There is a file that holds this exclusion at /etc/yum.conf. I just removed the perl* part and it installed everything, including dependencies, without a hitch.
Thanks, Thomas!