Mon, 30 Mar 09

Installing Passenger 2.1.2 on CentOS 5.2

I needed to upgrade Passenger on our web server last week (so that we could run Rails 2.3 apps) but ran into a little problem getting it installed.

We’re running CentOS 5.2 on our staging server.

  [root@rails-staging0 ~]# cat /etc/redhat-release 
  CentOS release 5.2 (Final)

The passenger gem installed OK but when I ran passenger-install-apache2-module I got the following error.

  ... other lines snipped ...
  /usr/bin/ld: skipping incompatible /usr/lib/ when searching for -laprutil-1
  /usr/bin/ld: cannot find -laprutil-1
  collect2: ld returned 1 exit status
  rake aborted!
  Command failed with status (1): [g++ -shared SystemTime.o Utils.o Bucket.o ...]
  (See full trace by running task with --trace)

  It looks like something went wrong

Searching for this error didn’t yield any definite fixes but a couple of posts mentioned re-installing the apr-devel packages. I tried apr-devel to begin with but was told that it was already up-to-date.

  [root@rails-staging0 ~]# yum install apr-devel
  ... other lines snipped ...
  Nothing to do

I can’t remember why but I tried apr-util-devel next which did result in the package being installed.

  [root@rails-staging0 ~]# yum install apr-util-devel
  ... other lines snipped ...
  Installed: apr-util-devel.x86_64 0:1.2.7-7.el5

With this package re-installed I was able to go ahead and install the passenger apache module (i.e. passenger-install-apache2-module succeeded).

One slightly interesting/odd thing was that yum reported that the same version (1.2.7-7.el5) of apr-util-dev was already installed. The only difference after the re-install was that its status changed from ‘base’ to ‘installed’.

  # before the re-install
  [root@rails-staging0 ~]# yum list | grep apr-util-devel
  apr-util-devel.x86_64                    1.2.7-7.el5            base
  # after the re-install
  [root@rails-staging0 ~]# yum list | grep apr-util-devel
  apr-util-devel.x86_64                    1.2.7-7.el5            installed