[Mailman-Users] Upgrade hell (Debian)
Karl Fogel
kfogel at floss.red-bean.com
Wed Jan 5 06:58:17 CET 2005
In this message
http://mail.python.org/pipermail/mailman-users/2003-June/029660.html
Deirdre Saoirse Moen described a problem upgrade she had while
upgrading Mailman on a Debian GNU/Linux system. We just encountered
the same problem, when we tried to do
# apt-get install mailman
to go from MM 2.0.8 to 2.1.5-4. We eventually solved it, though it
required some local klugery. We do not claim the solution below is
elegant :-), but anyway Mailman 2.1.5 is working now. In case it
helps anyone, here is what we did...
Details:
========
In MM 2.0.8 under Debian, virtually all of Mailman lived under
/var/lib/mailman/.
In MM 2.1.5, it seems that static data (scripts, templates, etc) lives
under /usr/lib/mailman/, and dynamic data under /var/lib/mailman/.
(Benjamin "Mako" Hill, a Debian developer, confirmed in IRC that this
is the standard way things are done these days.)
However, due to some Pythonvironmental weirdness, the scripts under
/usr/lib/mailman/bin/ were still trying to import from the old
/var/lib/mailman/Mailman/ directory, instead of from the new
/usr/lib/mailman/Mailman/ directory.
We still don't know why the Python import paths were messed up. Our
solution was simply to take every directory under /var/lib/mailman/
that has the same name as a directory under /usr/lib/mailman/, and
make the former a symlink to the latter. Thus:
# cd /var/lib/mailman
# for name in Mailman bin cron mail scripts
do
mv ${name} old-${name}
ln -s /usr/lib/mailman/${name} .
done
#
(That's not an actual transcript, but you get the idea.)
The result looks like this:
# cd /var/lib/mailman
# ls -l
total 664
[...] Mailman -> /usr/lib/mailman/Mailman
[...] archives
[...] bin -> /usr/lib/mailman/bin
[...] cgi-bin -> /usr/lib/cgi-bin/mailman
[...] cron -> /usr/lib/mailman/cron
[...] data
[...] filters
[...] icons
[...] lists
[...] locks
[...] logs -> ../../log/mailman
[...] mail -> /usr/lib/mailman/mail
[...] mailman
[...] messages
[...] old-Mailman
[...] old-bin
[...] old-cron
[...] old-mail
[...] old-scripts
[...] qfiles
[...] scripts -> /usr/lib/mailman/scripts
[...] spam
[...] templates
[...] tests
#
Currently, "apt-get install mailman" works fine (it's basically a
no-op, but the point is that all the post-install configuration stuff
runs smoothly). Brian and I expect future 'apt-get install mailman'
invocations to work as well, based on what apt-get seems to be trying
to do. But who knows, we could be wrong :-).
Best,
-Karl Fogel and Brian Fitzpatrick
kfogel {+at-sign+} red-bean.com
fitz {+at-sign+} red-bean.com
More information about the Mailman-Users
mailing list