--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: apache2.2-common: 2.0->2.2 upgrade fails with custom jk module
- From: root <root@svr3.eeg.ccf.org>
- Date: Mon, 06 Nov 2006 12:07:28 -0500
- Message-id: <20061106170728.5652.27224.reportbug@svr3.eeg.ccf.org>
Package: apache2.2-common
Severity: normal
My problem appears to be similar to #391864 and #392352 -- but not a
duplicate as far as I can tell.
I have a machine running apache2 with jboss and jk. I built jk as a
module using "./configure --with-apxs=/usr/bin/apxs2" under Apache 2.0
(sarge) and then later upgraded the machine to etch.
Today I attempted to upgrade to apache 2.2 in etch. It failed, horribly.
I didn't understand what was going on, and so I had to roll back to 2.0.
That was miserable.
Alas, my terminals don't have the tens of thousands of lines of scrollback
that would be required to give a FULL report of what happened. I can only
give an approximation.
If there is a fundamental incompatibility between apache 2.0 and apache 2.2
which causes custom modules (like jk) to become unusable upon update, then
there should be a huge red blinking warning sign on this update, and a
chance to abort.
Here's my feeble attempt to describe what happened.
538 apt-get install apache2
539 apt-get install apache2 libapache2-mod-php4
At this point, Apache was updated, and failed to start. It complained about
the jk module. So my first instinct was to rebuild it from the source
directory.
540 apt-cache search -- apache -dev
541 dpkg -l | grep apache
542 apt-get install apache2-prefork-dev
(In the other window:)
515 cd /var/tmp
516 ls
517 cd jakarta-tomcat-connectors-1.2.15-src
518 ls
519 cd jk/
520 ls
521 less BUILD.txt
522 cd native
523 cat ../BUILD.txt
524 ./configure --with-apxs=/usr/bin/apxs2
525 make clean
526 ./configure --with-apxs=/usr/bin/apxs2
This is where ./configure decided that it couldn't figure out how big an
"int" or a "long" was, and threw up its hands in despair.
527 gcc -v
528 cd /usr/bin
529 ls -l gcc
530 ln -sf gcc-3.3 gcc
531 cd -
532 ./configure --with-apxs=/usr/bin/apxs2
533 make
That one got farther, but still died. It was using libtool inside apr-1.0
which, I noticed, was part of the updated stuff from the original apt-get.
The failures appeared to be connected to that. I did NOT want to start
poking around inside a non-default libtool. I just wanted Apache to run!
So I started trying to downgrade back to the older packages. Those of
you who've read #391864 can guess how smoothly *that* went.
544 cd /var/cache/apt/archives/
545 ls
546 ls apache*
547 dpkg -i apache2-mpm-prefork_2.0.55-4.1_i386.deb apache2_2.0.55-4.1_i386.deb apache2-threaded-dev_2.0.55-4.1_i386.deb apache2-utils_2.0.55-4.1_i386.deb
548 dpkg --remove apache2-prefork-dev
549 dpkg -i apache2-mpm-prefork_2.0.55-4.1_i386.deb apache2_2.0.55-4.1_i386.deb apache2-threaded-dev_2.0.55-4.1_i386.deb apache2-utils_2.0.55-4.1_i386.deb
550 dpkg -i apache2-mpm-prefork_2.0.55-4.1_i386.deb apache2_2.0.55-4.1_i386.deb apache2-threaded-dev_2.0.55-4.1_i386.deb apache2-utils_2.0.55-4.1_i386.deb apache2-common_2.0.55-4.1_i386.deb
551 dpkg --remove apache2.2-common
552 apt-get --remove apache2.2-common
553 apt-get remove apache2.2-common
554 apt-get -f install
555 dpkg -i apache2-mpm-prefork_2.0.55-4.1_i386.deb apache2_2.0.55-4.1_i386.deb apache2-threaded-dev_2.0.55-4.1_i386.deb apache2-utils_2.0.55-4.1_i386.deb apache2-common_2.0.55-4.1_i386.deb
556 apt-get remove libapache2-mod-php4
557 apt-get remove libapache2-mod-php4 apache2-threaded-dev apache2-mpm-prefork
558 apt-get -f install
559 apt-get remove apache2
560 dpkg -i apache2-mpm-prefork_2.0.55-4.1_i386.deb apache2_2.0.55-4.1_i386.deb apache2-threaded-dev_2.0.55-4.1_i386.deb apache2-utils_2.0.55-4.1_i386.deb apache2-common_2.0.55-4.1_i386.deb
561 apt-get remove libapache2-mod-php4
562 dpkg -l | grep apache
563 apt-get remove apache-common apache2 apache2-common apache2-doc apache2-mpm-prefork apache2-threaded-dev apache2-utils apache2.2-common libapache-mod-php4 libapache2-mod-php4
564 dpkg -i apache2-mpm-prefork_2.0.55-4.1_i386.deb apache2_2.0.55-4.1_i386.deb apache2-threaded-dev_2.0.55-4.1_i386.deb apache2-utils_2.0.55-4.1_i386.deb apache2-common_2.0.55-4.1_i386.deb
565 dpkg --configure -a
566 apt-get -f install
567 dpkg --configure -a
568 ls libapr*
569 dpkg -i libapr0_2.0.55-4.1_i386.deb libapr0-dev_2.0.55-4.1_i386.deb
570 dpkg --remove libapr1-dev
571 dpkg --remove libapr1-dev libaprutil1-dev
572 dpkg -i libapr0_2.0.55-4.1_i386.deb libapr0-dev_2.0.55-4.1_i386.deb
573 ls libdb*
574 dpkg -i libdb4.3-dev_4.3.29-6_i386.deb
575 dpkg --remove libdb4.4-dev
576 dpkg -i libdb4.3-dev_4.3.29-6_i386.deb
577 dpkg --configure -a
578 cd /
579 /etc/init.d/apache2 start
Fun, eh? Of course, it didn't *actually* start. It failed because of all
the configuration changes that apache2.2 apparently left lying about.
At that point I started going back and forth between the two windows again,
so things might be a bit muddled.
Attacking the initial symptom, which was some sort of a syntax error....
535 cd /etc/apache2/mods-enabled/
536 ls
537 vi alias.load
That, of course, only fixed the one symptom, which was then replaced by
another -- this time, in mod_auth_basic.
538 ls
539 vi auth_basic.load
540 locate auth_basic
541 locate mod_auth_basic
542 dpkg -S auth_basic
I also visited http://packages.debian.org/ trying to find it. It seems
that this was one of many things that apache2.2 left behind which confused
apache2.0, rendering it unable to start.
So then I got a bit more aggressive.
543 dpkg -l apache2.2-common
544 dpkg --purge apache2.2-common
545 cd /etc/init.d
546 ls
547 mv apache2 /tmp
548 dpkg --purge apache2.2-common
549 dpkg -l apache2-common
550 mv /tmp/apache2 .
551 cd /
552 /etc/init.d/apache2 start
Closer, but it still wouldn't start. Apparently there are a bunch of
symlinks left behind....
554 cd /etc/apache2/mods-enabled/
555 ls
556 cat alias.load
557 ls -l
558 cd ../mods-available/
559 ls
560 cd -
561 ls
562 rm alias.load
563 /etc/init.d/apache start
564 /etc/init.d/apache2 start
565 dpkg -S auth_basic
566 rm auth_basic.load authn_file.load authz_*
567 /etc/init.d/apache2 start
568 rm autoindex.load
569 /etc/init.d/apache2 start
570 rm dir.load
571 /etc/init.d/apache2 start
572 rm env.load
573 /etc/init.d/apache2 start
574 rm mime.load
575 /etc/init.d/apache2 start
576 rm negotiation.load
577 /etc/init.d/apache2 start
578 rm setenvif.load
579 /etc/init.d/apache2 start
580 rm status.load
581 /etc/init.d/apache2 start
582 rm dir.conf
583 /etc/init.d/apache2 start
Eventually I managed to hammer it into starting.
I'm probably omitting some stuff I did in the other window during all of
that. Or pasting things out of sequence. As I said earlier, it was a
bloody mess.
-- System Information:
Debian Release: testing/unstable
APT prefers testing
APT policy: (500, 'testing'), (500, 'stable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-2-486
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
--- End Message ---