Teacup provides access to the [Tcl Extension Archive]. It is the client to the [TEApot] server. It is distributed with [ActiveTcl] by [ActiveState]. When encountering problems with, or having ideas for new functionality for it, please enter them at http://bugs.activestate.com/ . The bug database project is ActiveTcl, Component Teapot. * How do I know what version of teacup I am using? Just type: $ teacup version 8.5.0.0.278673 * How do I learn how to use teacup? $ teacup help teacup is a tool to access package repositories teacup help cmds-by-group Grouped list of commands provided by teacup teacup help commands Alphabetical list of commands provided by teacup teacup help help How to use help teacup help options Describes the standard options teacup help queries Describe the syntax of complex queries * What kinds of things can you do with teacup? Teacup knows about the following commands when you issue '''teacup help commands''': commands -- Print list of commands provided by teacup Use 'help ' to get detailed help for a command. teacup archive Manage archives teacup cache Manage cache settings teacup create Create installation repository teacup default Manage installation repository teacup delete Delete installation repository teacup describe Describe package found in an archive teacup get Get archive file of package found in an archive teacup install Install a package found in an archive or file teacup keys List meta data keys found in the archives teacup link Manage links between installation repositories and tcl shells teacup list List packages found in the archives teacup log Manage the log of installed/removed packages teacup profiles Find and list profile packages found in the archives teacup proxy Manage proxying teacup remove Remove installed packages teacup search Search and list packages using complex queries teacup setup Enable tcl shells to handle installation repositories teacup timeout Manage timeout teacup update-self Get newest revision of teacup for the platform teacup version Print version of teacup teacup who Print description of teacup * What is the first step in using teacup? The first step is getting teacup. To do that, install a recent version of [ActiveTcl]. The teacup command should be installed along with either ActiveTcl 8.4.15.x or 8.5.x alpha. * What's next? When you do the ActiveTcl installation, a teapot directory in your $HOME is created. * How will this directory be used? When you make use of teacup's install command, items will be installed into your teapot directory, and the [tclsh] in ActiveTcl's bin directory has been designed to look there for packages. * But I don't want the repository to be there - how can I move it? [[insert steps here]] * I want to make the repository readable for anyone using ActiveTcl's tclsh - do I need to do anything special? * I want to set up a repository for a different tclsh - how do I do that? * Okay, now, how do I go about determining what is available to install? Just run teacup list and you will see all items residing in the default software repository located at ActiveState. * Wow - there's a lot of stuff there ... where do I start? Well, that's up to you. However, [LV] suggests starting with: teacup install ActiveState::ActiveTcl -is profile which should install a set of commonly used Tcl packages. * That's neat. There was, however, a lot of stuff in that first list - what about all of those items? Well, you might have noticed that the list was made of items like this: package Itcl 3.4 aix-powerpc package Itcl 3.4 hpux-parisc package Itcl 3.4 linux-glibc2.2-ix86 package Itcl 3.4 macosx-universal package Itcl 3.4 solaris2.6-sparc package Itcl 3.4 solaris2.10-ix86 package Itcl 3.4 win32-ix86 The first column is the type of entity. Right now, there are profiles (think of them as a MANIFEST or an index of other items in the repository), packages, and applications. The second column is the item name. Hopefully at some point, someone will ensure there is a wiki page for each item in the repository, so that one only need to visit http://wiki.tcl.tk/Itcl (or whatever package name) and see more details about the package. The third column is the version number of the item. A particular item might have several versions in a repository. Itcl, for instance, has at least versions 3.3 and 3.4 in the repository at the time of this writing. The fourth column is the platform name. If the item is pure tcl, the value in that column will be "tcl". Otherwise, the name is typically OperatingSystem-HardWare or some other common components (glib version, os version, etc.). So, the default install I showed above will be for software items that match the platform and version of tcl that you are using. * What if I want to install software for other hardware or operating system platforms? [[add information on how to do that here]] * What if I want to install stuff for two different versions of Tcl - say 8.4.x and 8.5? [[add information on how to do that here]] * Are there other items in the repository besides what is installed via that profile? To find out, execute teacup list --only uninstalled You will get a list of items that are for your platform / tcl version , but not yet installed. * How would I install one of these? You would run teacup install {package} where the word {package} is replaced by the name of the thing you are wanting to install. * How can I tell if I have the newest version of a package? You could execute teacup list --only newer and teacup will list any of your packages which have newer versions * Then how do I install the newer package? You would run teacup install {package} {version} and the specific version of the package you specify is installed. * Neat! Where do I find the documentation for all these packages. Currently, teacup doesn't install documentation for packages. There are pages, or placeholders for pages, on this wiki for all the entities. [LV] hopes that [wikignomes] will help fill those wiki pages with pointers to the docs, etc. for each of the packages! * Well, you have briefly mentioned profiles and packages, what about applications? Currently, entity types of application should be considered sort of a ''for completeness'' feature. That is to say, if you install an item that has a type of application, something is ''installed''. However, installed today (early June 2007) means ''a copy is installed into a directory somewhere and it is up to you to copy/move/link it into a location of your own choice''. Not too big a deal today, because there are only a few applications in the repository. However, if you '''want''' to install an application, you would do something like this: teacup install tkcon -is application Notice the single dash with the ''-is'' . Even though any other dashed argument uses two dashes, in this case, the single dash is correct. ---- See also: * [Using Teacup for the first time] ---- [LV] For '''teacup setup''' , to what does the ''--shell'' argument refer? A pathname to an executable? [AK]: Yes. See '''teacup help setup''' for help. [LV] Ah, the help indicates, indirectly, that the --shell is referring to a Tcl interactive shell. It isn't clear whether it wants a path to the shell, or just the simple name. [LV] For instance, I have a situation where the machine for which I want to download some items is not on the internet. I don't have access, at all, to a machine of that type. What I need to be able to do is to say "download into repository /path/to/machine1/repository the XYZ extension" so that I then can create a CDROM or some other media copy of the extension and [sneakernet] it to the machine. [Alastair Davies] ''thinks'' that the way to do that is as follows. For example, to get XOTcl 1.4.0 for MacOS X using only my Windows XP machine: C:\Documents and Settings\Alastair Davies>teacup get XOTcl 1.4.0 Retrieving package XOTcl 1.4.0 solaris2.6-sparc ...@ http://teapot.activestate.com ... Ok Retrieving package XOTcl 1.4.0 macosx-universal ...@ http://teapot.activestate.com ... Ok Retrieving package XOTcl 1.4.0 solaris2.10-ix86 ...@ http://teapot.activestate.com ... Ok Retrieving package XOTcl 1.4.0 win32-ix86 ...@ http://teapot.activestate.com ... Ok Retrieving package XOTcl 1.4.0 aix-powerpc ...@ http://teapot.activestate.com ... Ok Retrieving package XOTcl 1.4.0 linux-glibc2.2-ix86 ...@ http://teapot.activestate.com ... Ok Retrieving package XOTcl 1.4.0 hpux-parisc ...@ http://teapot.activestate.com ... Ok Output directory C:/Documents and Settings/Alastair Davies 7 packages found, copying retrieved files ... Copying package-XOTcl-1.4.0-solaris2.6-sparc.zip Copying package-XOTcl-1.4.0-macosx-universal.zip Copying package-XOTcl-1.4.0-solaris2.10-ix86.zip Copying package-XOTcl-1.4.0-win32-ix86.zip Copying package-XOTcl-1.4.0-aix-powerpc.zip Copying package-XOTcl-1.4.0-linux-glibc2.2-ix86.zip Copying package-XOTcl-1.4.0-hpux-parisc.zip This command places seven zip files in your current directory ('''not''' in your own local repository). You can sneakernet the appropriate zip file to the disconnected machine, and then install it from the zip file into the disconnected machine's local repository using the command teacup install package-XOTcl-1.4.0-macosx-universal.zip You obviously need the TEAcup client on the disconnected machine as well. According to the documentation, it should be possible to put a particular architecture on the command line to retrieve one (not seven) packages, but I couldn't get that to work. C:\Documents and Settings\Alastair Davies>teacup get XOTcl 1.4.0 macosx-universal Output directory C:/Documents and Settings/Alastair Davies 0 packages found, no copying Problems which occured during the operation: * http://teapot.activestate.com : timeout HTH, [Alastair Davies] 8 December 2006 [AK]: Use the '''-v''' flag of 'get' to determine what operation is actually timing out. Problems should be also be reported at http://bugs.activestate.com in the Project '''ActiveTcl'''. The relevant component in the 'add bugs' form is '''teapot'''. I myself ran into trouble with timeouts when downloading the INDEX took longer than 10 seconds, I was not aware that http would measure that in absolute terms, instead of activity-based. The timeout in the newest builds has been incremented to 30 seconds. To get a new teacup see '''teacup update-self'''. [Alastair Davies] dutifully reported a bug [http://bugs.activestate.com/show_bug.cgi?id=64058] -- I'm not saying it is a bug, just that it doesn't work for me -- that the operation consistently times out when requesting the more specific "teacup get XOTcl 1.4.0 macosx-universal" but consistently works for the less specific "teacup get XOTcl 1.4.0". ---- [LV] 2007-Feb-21 1. Has anyone determined what one needs to do to find out from teacup what packages it believes are installed locally? ''Alastair suggests trying teacup list --at-default'' 1. Note that using ~/.teapot/repository as the location to store things makes me wonder what happens when one has multiple versions of ActiveTcl with teacup installed - will teacup keep straight that I have Tcl 8.4.14 and 8.5.0 a6 installed, and update the right packages at the right time? ---- [Alastair Davies] One request for enhancement [http://bugs.activestate.com/show_bug.cgi?id=67342]: could we have an "upgrade" command to fetch the latest version of every package in the local repository? [RLH] 2007-06-01 ~ ~ I second this one! You would also need a list-upgrade to show a list of what you have versus what the latest is. You may not always want to upgrade "everything" but having a list like that would allow you to choose. [AK] Pretty please, when encountering problems with, or having ideas for new functionality for it, enter them at http://bugs.activestate.com/ . The project is ActiveTcl, Component Teapot. I am not scanning the wiki all day long just looking for such changes. [LV] If you check above, you will see a way to get a list of updates. You would be able to write a tcl script which runs the teacup list --only newer command, then parses its output and invokes teacup install on the resulting information. ---- [Category Repository]