This page is intended as a forum for developing ideas about a [tcl] [instal]ler 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: * a tcl/tk [extension] installer * an application installer, eg for tcl/tk itself or any other application, tcl based or not * a [web]-based update agent Discussion on this is happening on the tclish mailing list [http://sourceforge.net/mail/?group_id=7626]. 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 [http://www.shlrc.mq.edu.au/~steve/tcl/]. Here are the procedures I defined: [[what about the [Company: Software AG] one?]], 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] [http://ourworld.compuserve.com/homepages/mmg_kraus] 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 INNO [http://www.jrsoftware.org/isinfo.htm], VISE [http://www.mindvision.com/products.html] (available for MacOS and Windows), Microsoft Installer (MSI), [Jeff Hobbs]'s [ActiveTcl] installers (executable .zip), InstallShield [http://www.installshield.com/], setup2go [http://dev4pc.com/setup2go.html] (recommended by David Zolli), WISE [http://www.wisesolutions.com/Default.htm], cabwiz ("which comes with the freely downloadable eMbedded Visual C++ package"), ... [[many others]] ... Installer/GD, 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: * 95/98/ME: http://www.winguides.com/registry/display.php/900/ * NT/2K/XP: http://www.sysinternals.com/ntw2k/freeware/psshutdown.shtml ---- [[Explain [TEKI].]] ---- For a simple stand alone application installer see: http://www.superant.com/cgi-bin/countessmod.pl?Tkinstall_Program ---- [InstallBase] 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: * A full-featured install builder. * Installs are packaged in single binary executables for each platform making web distribution easy. * Features specific to Tcl/Tk software and programs. * Support for multiple install themes. * Default install themes that resemble popular, commercial installers. * A high level of configurability. Install panes can actually be modified right down to the Tcl/Tk code. * Built-in support for Windows install conventions. * Automatic creation of an uninstaller. * Currently supported platforms are Windows, FreeBSD, Linux and Solaris. ---- [Category Application] | [Category Deployment]