This page is intended as a forum for developing ideas about a tcl installer library. The general goal is to have a library of tcl and tk code that can be used in constructing software installers. Using this library, you would be able to write applications like:
Discussion on this is happening on the tclish mailing list [L1 ].
A related topic is into what directory should one install the various pieces of a tcl application or extension.
Obviously, a tcl/tk extension installer will be a crucial component in a Tcl Extension Repository from which extensions can be downloaded and installed on demand. Since this is a very simple application I (Steve Cassidy) thought I'd begin the library by prototyping this. You can find the code via my tcl page [L2 ]. Here are the procedures I defined:
installer::fetch uri -- fetch a file from a remote url installer::tmpdir -- locate a temporary directory installer::text_progress token total current -- display progress of something installer::unzip zipfile dir -- unzip a zipfile to a target directory installer::install_extension uri ?dir? -- install a tcl extension from a uri installer::disk_free dir -- how much free space is left in dir? installer::locate_package_dir -- find a place on auto_path to install a package installer::bootstrap ?site? -- download enough code to be able to run install_extension
My code makes use of the http extension from the core and mkZiplib by Michael Kraus [L3 ] that provides a nice thin wrapper around zlib. I've provided alternate implementations of unzip that use zvfs (from freewrap) or an external unzip program if one can be found. If none is present then the bootstrap proc could be used to download and install one for the platform.
Another aspect of this is the shape of installable extension packages and of an online repository. For some initial work on this see Cantcl.
Other components of the installer library would include procedures to move files into different locations and to display a gui installer dialogue that is familiar to windows users. Please add your suggestions here...
Among the installers developers use for Tcl applications are
The ActiveTcl installers mentioned above have been switched to a starpack for Tcl Dev Kit 2.5 and ActiveTcl 8.4.2.0.
A Tcl-based installer is Tclish, http://tclish.sourceforge.net/
Starkit (ex Scripted Document) follows the Tao of zero installation - if you have the file, it is installed ;-)
If you want to roll your own install scripts, you might want to reboot a (Windows) machine in the process. Here's utilities for that:
[Explain the purpose of rebooting Windows--locks on in-use DLLs, and so on.]
[Explain TEKI.]
For a simple stand alone application installer see: http://www.superant.com/cgi-bin/countessmod.pl?Tkinstall_Program
"InstallJammer is the renamed, re-designed InstallBase project and has been in work for over two years for this release." (the alpha release 1.0a1, dated 2005-11-14)
InstallBase is a multi-platform GUI installer written in Tcl/Tk and designed to work on Windows, Mac and virtually any flavor of UNIX / Linux.
Current release is 1.0a5, released on March 21, 2003.
It features:
About the Company: Software AG one:
The installation tool is called Graphical Installation for Unix (short: Ginfix) and is an extended Tcl/Tk interpreter. It is a statically build single executable, not unlike a Starpack but doesn't use that technique.
The installer supports installing, configuring, updating, and removing a Software AG product on Unix Systems. It has a wizard like front end and supports two interactive modes (gui and console) and a batch mode without interaction. A steps file is needed as input, which is a specially formated Tcl-Script and describes the necessary steps for the installer to e.g. install a Software AG product.