apocryph.org Notes to my future self

15Jun/096

How to Install Subversion on FH CentOS 5 (it should be easy, but isn’t)

I’ve been running apocryph.org and my other sites off of a pair of VPS instances hosted at FutureHosting.  It’s been a mixed bag of good and bad experiences, about which more later.  Long story short, I was standing up a new back-end server instance to host the MySQL databases and my personal Subversion repository.  In order to do this I obviously needed SVN installed.  No problem, of course, it’s as easy as ‘sudo yum install subversion‘.  Except it isn’t.

When I run the above command, I get:


Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.secsup.org
* updates: mirror.raystedman.net
* addons: mirrors.tummy.com
* extras: mirrors.adams.net
base | 1.1 kB 00:00
updates | 951 B 00:00
addons | 951 B 00:00
extras | 1.1 kB 00:00
Excluding Packages in global exclude list
Finished
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package subversion.x86_64 0:1.4.2-4.el5 set to be updated
--> Processing Dependency: perl(URI) >= 1.17 for package: subversion
--> Processing Dependency: neon >= 0.25.5-6.el5 for package: subversion
--> Processing Dependency: libneon.so.25()(64bit) for package: subversion
---> Package subversion.i386 0:1.4.2-4.el5 set to be updated
--> Processing Dependency: perl(URI) >= 1.17 for package: subversion
--> Processing Dependency: libneon.so.25 for package: subversion
--> Running transaction check
---> Package subversion.x86_64 0:1.4.2-4.el5 set to be updated
--> Processing Dependency: perl(URI) >= 1.17 for package: subversion
---> Package subversion.i386 0:1.4.2-4.el5 set to be updated
--> Processing Dependency: perl(URI) >= 1.17 for package: subversion
---> Package neon.x86_64 0:0.25.5-10.el5 set to be updated
---> Package neon.i386 0:0.25.5-10.el5 set to be updated
--> Finished Dependency Resolution
subversion-1.4.2-4.el5.i386 from base has depsolving problems
--> Missing Dependency: perl(URI) >= 1.17 is needed by package subversion-1.4.2-4.el5.i386 (base)
subversion-1.4.2-4.el5.x86_64 from base has depsolving problems
--> Missing Dependency: perl(URI) >= 1.17 is needed by package subversion-1.4.2-4.el5.x86_64 (base)
Error: Missing Dependency: perl(URI) >= 1.17 is needed by package subversion-1.4.2-4.el5.i386 (base)
Error: Missing Dependency: perl(URI) >= 1.17 is needed by package subversion-1.4.2-4.el5.x86_64 (base)

Not cool.  Why can’t yum resolve that dependency?  That’s what it’s for?  Oh well, I’ll install it manually with ‘sudo yum install perl-URI‘.  Um, no:


...
Parsing package install arguments
No package perl-URI available.
Nothing to do

No package available? WTF?

Googling about yields posts like this one, which suggest manually downloading and installing the perl-URI RPM.  I tried that and got this:


warning: perl-URI-1.37-2.fc11.noarch.rpm.1: Header V3 RSA/SHA256 signature: NOKEY, key ID d22e77f2
error: Failed dependencies:
perl(:MODULE_COMPAT_5.10.0) is needed by perl-URI-1.37-2.fc11.noarch
rpmlib(FileDigests) <= 4.6.0-1 is needed by perl-URI-1.37-2.fc11.noarch

Not helpful. But then I goggled about a bit more and ran into this. The OP in this forum thread had the exact same problem, and it turned out there were exclusions in his /etc/yum.conf file that excluded, among other things, all perl packages. I looked at my yum.conf and found this:

exclude=apache* bind-chroot courier* dovecot* exim* httpd* mod_ssl* mysql* nsd* perl* php* proftpd* pure-ftpd* ruby* spamassassin* squirrelmail*

WTF? Why are all those packages excluded?

I opened a ticket with FutureHosting on this, and first they just manually installed the perl-URI RPM and closed the ticket. I pushed further on why these excludes were there, and got this reply:

They are automatically put in there when cPanel installs. It’s because of cPanel.
Thank you,

Because of cPanel.  Well, that clears it right up.  This is the sort of answer I expect from FutureHosting, where their support people are clearly paid to close tickets, not explain things to users.  Why does cPanel require these exclusions?  What would happen if I removed them?  What did the support guy do to get the perl-URI package installed?   I don’t know.  I may never know.  But if you run in to this problem, particularly if you’re hosted on a VPS or cPanel instance, check your exclude in yum.conf.

Comments (6) Trackbacks (0)
  1. Cpanel excludes those because it manages the updates to those packages, in order to prevent them from causing conflicts with cpanel’s way of doing things.

    However, those exclusions don’t have anything to do with the errors you are getting in installing subversion. You can try removing the perl exclusion and then install the packages, but I am willing to bet you will have the same problems.

    The only way I have found to get perl-URI to install is by downloading the RPM and installing it. Where you had some dependencies fail when you tried that, I would try to YUM install those dependencies, and if that doesn’t work, trace down their RPMs and install them that way.

    It’s gay, I know. But that is why they pay linux admins the somewhat big bucks.

  2. I’m pretty sure excluding the package from YUM is why I couldn’t install it with YUM. I’m not sure why the RPM failed; I assume some idiosyncracy of either YUM or RPM that I don’t quite get.

    On the one hand I understand why cpanel does this, as any package updates that break cpanel will be treated by customers as a cpanel error. However, this seems a very heavy-handed way of solving the problem. I would think cpanel could just install itself with its own copies of its various dependencies, running just the right version to get cpanel to work, and not leave the entire box relegated to hoping cpanel will ship perl-URI or whatever.

  3. I had a similar problem with installing subversion on a Cpanel mangled RHEL install. Disabling the excludes line in yum.conf temporarily allowed perl-URI and subversion to be installed successfully.

    I copied /etc/yum.conf to ~/yum-sane.conf, commented out the excludes line and did “sudo yum -c yum-sane.conf install perl-URI” which installed that package, and then “sudo yum install subversion” to finish the installation.

  4. Just a quick bit of info for anyone who comes across the same problem:

    I solved it by temporarily removing perl* from the exclusions list, using ‘sudo yum install subversion’, then re-adding perl* to the exclusions list

    Everything installed perfectly ok, and cPanel is safe!

  5. David’s advice worked for me too. Thanks David!
    I am using CentOS on a VPS server (with cPanel).

  6. Worked for me, too. I removed perl* from the exclusions, then installed subversion from the WHM Install a Package applet with no problems. Thanks, David!


Leave a comment


No trackbacks yet.

Delicious Bookmarks

Recent Posts

Meta

Current Location