Distutils: bdist_wininst. System integration use. (--silent option?,etc.)

  • Thread starter Peter Schmiedeskamp
  • Start date
P

Peter Schmiedeskamp

Hello, I'm writing in regard to the distutils package for python.

I regularly repackage installers for silent/automated distribution on
numerous Windows PCs throughout an enterprise. Sites such as
AppDeploy (http://www.appdeploy.com) and tools such as WISE all
suggest that this is a pretty common task.

Increasingly, however, I've found that tools like WISE's setup capture
are becoming less relevant for this task. Rather than running an
install and capturing the output, it is getting easier and more
reliable to simply wrap the original vendor's installer and invoke it
with the proper command line parameters to produce a silent install.
So, repackaging is really becoming meta-packaging.

What is important with this meta-packaging is to properly prepare the
system environment (clean up icons, set registry keys, backup user
files, etc.) for the execution of the vendor's installer. From my
experience, flow control and general language consistency of the
various installer applications is abysmal. Python seems like the
logical replacement for the anemic or otherwise ill-planned scripting
languages that plague Windows software installers.

Enter Python:
The bdist_wininst tool looks to be very close to ideal for such a
purpose. However, it lacks a couple key features
(please correct me if I'm wrong on any of these):
1. Silent or non-interactive installations
2. Installations to arbitrary locations

Currently, on packages requiring heavier weight logic, I must invoke a
py2exe generated executable. This works very well, but as more and
more logic moves from an installer package to a python script, it
seems rather silly to use an entirely separate installer program to
merely bundle the py2exe generated files into a single self-extracting
installer.

I caught another thread from some time ago, where the python
developers talked about installers and their respective problems.
(http://mail.python.org/pipermail/distutils-sig/2001-July/002529.html)
It seems like many good questions were raised, but I never found that
any elegant solution was found.

So, is anyone else using python for systems integration work? Would
someone familiar with the bdist suite care to speculate on the
difficulty/sensibility in extending the bdist package for this
purpose?

Perhaps a system integration toolkit would be a better place for this?
It seems, though that bdist might be the right place for the
installer bits, but maybe people see other areas where code reuse
could take place. Ultimately, maybe a bdist_msi might be possible. I
think perl has some kind of MSI generating code. Maybe this could be
a starting point for such an endeavor.

Sorry for the length of this post. I'll be good next time.

-Peter
 
M

Martin v. =?iso-8859-15?q?L=F6wis?=

Peter Schmiedeskamp said:
So, is anyone else using python for systems integration work? Would
someone familiar with the bdist suite care to speculate on the
difficulty/sensibility in extending the bdist package for this
purpose?

It should certainly be possible - it is open source, so you can see
for yourself what precisely it does. It being open source, changes
occur only when volunteers contribute them, though.
Ultimately, maybe a bdist_msi might be possible.

Yes, I've been looking into creating MSI through the installer
automation interface. Unfortunately, there is too little documentation
about *creating* databases - much of the documentation deals with the
setup process itself. For example, my current questions are:

- how do I get a package initialized with the default schema? In
particular, how do I get the _Validation table filled?

- how do can I add the file content to the database (I know how I can
put things into the Files table).

Regards,
Martin
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,754
Messages
2,569,526
Members
44,997
Latest member
mileyka

Latest Threads

Top