Find the answer to your Linux question:
Results 1 to 5 of 5
I confess I'm a linux newbie first off. I'm attempting the lovely task of uninstalling Apache 2.2 and installing Apache 2.0 on CentOS 5. This is because of my original ...
  1. #1
    Just Joined!
    Join Date
    Apr 2009
    Posts
    2

    Question Downgrading Apache from 2.2 to 2.0 on CentOS 5

    I confess I'm a linux newbie first off.

    I'm attempting the lovely task of uninstalling Apache 2.2 and installing Apache 2.0 on CentOS 5. This is because of my original task of installing RSA web agent which only works with Apache 2.0. I also am not allowed to just install CentOS 4.

    I uninstalled Apache 2.2.
    Attempted to install Apache 2.0 (with rpm) and got multiple dependency errors. I installed the dependencies (and sometimes their dependencies including a little dance around some circular dependencies). Then I installed Apache 2.0 with no errors. However Apache failed to start.
    Here is the error:
    httpd: symbol lookup error: /usr/lib/libaprutil-0.so.0: undefined symbol: gdbm_errno.
    Please don't tell me it "seems like you're missing your gdbm libraries." I'm not. I'm assuming I'm having a version incompatibility issue between gdbm and libaprutil. I just don't know what version of which I need to make Apache 2.0 happy.
    I tried uninstalling gdbm and installing an older version but I still have the same problem. Another option is to uninstall my openldap package (2.3.13-2) which I just installed and install an older version of that but again don't know which version is right. At this point, I'm just blindly trying things and that can't be good. Any ideas?

    Thank you.

  2. #2
    Just Joined!
    Join Date
    Apr 2009
    Posts
    2
    Update: I had the wrong version of libapr-0.so.0 and libaprutil-0.so.0. Once I installed version 0.9.13 of both and edited the document root in the httpd.conf file then Apache started up and it is working now. Hope this helps someone out there sometime.

  3. #3
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    Location
    I can be found either 40 miles west of Chicago, or in a galaxy far, far away.
    Posts
    8,974
    You hit the Linux version of "dll hell". What I usually do, is to install these items and dependencies in /usr/local, keeping the old version around. Then I create a script that will switch my PATH and LD_LIBRARY_PATH variables to use /usr/local/bin and /usr/local/lib before the standard sytem /usr/bin and /usr/lib directories for executables and shared libraries. Then you should be able to run these "antiquated" applications, and still have the newer versions on your system.

    I know that there are usually more things to deal with than this, such as application configuration (where it gets its configuration data, etc), but it will get you started. Just look at Java. You can have multiple versions of Java on one system. By default, the latest is made the default, but older versions are available and with some environmental futzing, legacy applications can use the older versions as necessary.
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

  4. #4
    Linux Engineer b2bwild's Avatar
    Join Date
    Jul 2008
    Location
    Behind You!
    Posts
    1,108
    However the if the old package doesnt support the newer libraries, you have to get older versions of them all.
    all you can try is installing apache2 with --force option, though its not recomanded.
    While running apache if you get error as something.so not found. and you have newer version of it, you can make a sym link of it with desired name.

    If theres major change in version of library, its less likely to work.
    Never make any misteaks.

    Read my Blog at --> Penguin Inside Subscribe Feed

  5. #5
    Linux Guru Rubberman's Avatar
    Join Date
    Apr 2009
    Location
    I can be found either 40 miles west of Chicago, or in a galaxy far, far away.
    Posts
    8,974
    Quote Originally Posted by b2bwild View Post
    However the if the old package doesnt support the newer libraries, you have to get older versions of them all.
    all you can try is installing apache2 with --force option, though its not recomanded.
    While running apache if you get error as something.so not found. and you have newer version of it, you can make a sym link of it with desired name.

    If theres major change in version of library, its less likely to work.
    That's why when I have to install an older version of a package, I don't use the package manager, but download everything to my system and build it to install in /usr/local. There are a lot of times when dependencies on older versions of some libraries are not an issue presuming that the new ones are compile-time compatible with the old application. I usually try to build without any of the dependent deprecated libraries present on my system so it will try to use the up-to-date ones, and only install the old versions if the build fails because of source-code incompatibilties.

    That said, I have a lot of years of experience doing this sort of stuff, and it might be a bit overwhelming for less experienced people who are simply trying to get some old cruft working.
    Sometimes, real fast is almost as good as real time.
    Just remember, Semper Gumbi - always be flexible!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
...