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 /etc/<application>/*.conf * Directories are laid out according to the FHS, _with_the_correct_permissions_. * 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 /etc/logcheck * 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 _______________________________________________ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com