teacup install

This teacup subcommand fetches and installs a package for you.

It is important to note that there is a syntactical distinction between installing a package (aka an extension), and an application.

LV In a week or two, the following info should be merged below so that there isn't a distinction between the old way of doing things and the new. It makes sense, right now, to distinguish since it may be a bit until everyone runs the

teacup update-self

AK: Since build 284134 teacup is able to work out on its own what FOO is, package, application, or profile, as long as the name FOO is unambiguous. That means that in most cases the '-is TYPE' arguments in the examples below are not necessary. Only if FOO is ambiguous, for example because the archives contain both an application FOO and a package FOO is the option '-is' required, and teacup will ask the user for it. More concrete example:

 % teacup install FOO
 Resolving FOO ... Cannot resolve ambiguous reference.
        entity      name  version platform
        ----------- ----- ------- --------
        application FOO 2.5     tcl
        package     FOO 2.5     tcl
        ----------- ----- ------- --------
        2 entities found

        Aborting installation. Please add the option '-is ENTITYTYPE' to
        the command line to unambiguously specify which of the found
        entities you wish to install. You _cannot_ --force this.

For example:

$ teacup install sqlite3

is what you would type to install a package.

$ teacup install tkcon -is application

is what you would type to install an application like tkcon.


If you are wanting to use teacup to install tcllib, it too takes the special syntax:

$ teacup install tcllib -is profile

This is because tcllib is NOT a package - it is a collection of packages.

EKB As mentioned above, "-is profile" is no longer needed. However, it appears that you do now have to specify which version of tcllib you want: tcllib84, tcllib85, tcllib86.

If you are wanting to install the batteries included set of packages that came with ActiveTcl 8.4 (and to some degree, earlier), then you would use

$ teacup install ActiveState::ActiveTcl -is profile

Now, some people may find they need to run teacup timeout to lengthen the amount of time teacup waits for completion. And others may need to look into teacup's -proxy argument.

EKB This failed for me, because of unresolved dependencies on 1 April 2010 (not an April Fool's joke!). -- use the "force" option...

AK: Right. Tcllib has a few packages which require Tcl 8.5, some even Tcl 8.6. Having them all in one profile, claiming that Tcl 8.4 is enough is wrong. Hence the new setup, with each of tcllib8x listing only the packages usable for Tcl 8.x. Can you tell me which of the tcllib8x failed for you ?

AK: To RLH: While he can certainly --force the install I would really like to know where the dependencies are wrong so that I can fix things.