This page is intended as a forum for developing ideas about a [tcl] [install]er 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: 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) - not really an installer, but a system for installing software from a .msi file created by an installer such as InstallShield * [Jeff Hobbs]'s [ActiveTcl] installers (executable .zip) * InstallShield [http://www.installshield.com/] * Nullsoft NSIS installer [http://nsis.sourceforge.net/] (PT uses this) * setup2go (recommended by [Kroc]) - the home page at [http://dev4pc.com/setup2go.html] has gone, but the software is still available from download sites such as Tucows [http://www.tucows.com/preview/252523] * WISE, taken over by Altiris, which was then taken over by Symantec. May still be available from Symantec. [http://www.wisesolutions.com/Default.htm] * cabwiz ("which comes with the freely downloadable eMbedded Visual C++ package") * Installer/GD [http://www.proggle.com/installer/index.shtml] * ... [[many others]] ... 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 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] http://www.installjammer.com/ "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] 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. ---- 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. ---- * [gnu source installer] * [windows installer] * [sample installation script] ---- !!!!!! %| [Category Application] | [Category Deployment] | [Category Survey] |% !!!!!!