[Web-SIG] windows, pywebd, webctl

Brian Sutherland jinty at web.de
Mon Mar 12 06:26:40 CET 2007

On Fri, Mar 09, 2007 at 01:22:58PM -0500, Chad Whitacre wrote:
> Jim,
> First, your comments re: paying attention to sysadmins are 
> well-taken. Thanks.

I was pointed to this conversation and would like to comment wearing my
sysadmin hat about what I would like. How I think web applications
should be installed on unix. Basically, I'll just go through what
happens when I install apache, squid or postgres on linux.

When I install an application that is a daemon, I want the following
things to happen automatically:
    * A new user for the daemon to run as is created to protect the
      daemon from the other users and the other users from the system.
    * A default config is placed unless one already exists in
    * Directories are laid out according to the FHS,
    * Logrotate config placed in /etc/logrotate.d/
    * Initscripts placed in /etc/init.d and symlinked to /etc/rc*.d
    * Server is started
    * Hopefully logging is via syslog with reasonable rules in
    * SEL Policy (perhaps in future)
    * Upgrades from previous versions handled
    * Various other files placed around /etc

And, when I de-install, I want all of these things cleaned up in the
right way according to my specific flavor of Linux. Currently when
installing Zope, because of the way the instance model is hardwired, I
have to do a lot of these things manually.  That's bad when you are
working on a cluster of many hopefully identical machines.

By now, it should be obvious that the details of this process are
specific to my favorite distribution of Linux and that I install this as
a sysadmin.  Things are different if you are a developer, running BSD,
or running Windows.

Also, the infrastructure for doing all these things at install/deinstall
time already exists in the packaging infrastructure of most Linux
distributions. I think it would be a bad idea to duplicate this
infrastructure and all it's os-specific variations in a pure python
packaging infrastructure.

At the moment, distutils and setuptools are the main interfaces between
the packaging infrastructure and python applications. Buried deep in
most packages is the line:

    pythonX.Y setup.py install --single-version-externally-managed --root=./<foo>

So, basically, I think that keeping sysadmins happy means maintaining
compatibility/extending a distutils style installation.

Brian Sutherland

More information about the Web-SIG mailing list