Home Research &
Strategy Consulting
Interop
Technology Center
Learning
Center
SUA Articles SUA Community
Forums
Tool
Warehouse
About
Interop Systems

Package Install Instructions

for Interix, SFU & SUA (Subsystem for Unix-based Applications)

Link to new web page: Package Install

You might prefer to read the "Basic" web page for this first:
Updating Packaged Software,
Displaying Packaging Information,
Deleting or Uninstalling a Package.

"Interix" is the name of the system when you run the command 'uname -a'. If you install SUA (Subsystem for Unix-based Applications) or SFU (Services for Unix) then Interix is still the system. There are different versions of Interix: Interix 3.5 is with SFU 3.5, Interix 5.2 is with SUA on Windows Server 2003/R2 and Interix 6.0 is with SUA on Vista and Server 2008. Interix 6.1 is with Windows 7 (Ultimate and Enterprise Editions) and Server 2008 R2.
These instructions apply to ALL versions.

Starting with Interix 3.5 all "/Tools" applications and libraries are being packaged and we keep updating the versions too.  A package is used by the installer to correctly place all the binary and data files.  It also records version numbers, file locations and check sums for verification, uninstalls and does version updates.  By using the installer all other packages that a particular application depends on will be installed at the same time.  The installer is based on the BSD package system.  We have made several changes and updates to it over the years, but it has essentially the same "flavor" as installers with BSD or Sun.

You MUST have Interix (SUA or SFU) already installed before starting these instructions!

If you have already installed a BUNDLE you do not need to bootstrap!

The first thing to do to is "bootstrap" the installer to your system.
There is a specific "bootstrap" file for different versions. Here is a table to explain and choose from:

Most people have a 32-bit system or are running a 32-bit version of Windows on 64-bit hardware. The safest choice is to choose a 32-bit system if you are unsure.

The installer s best run by the Local Administrator. Running as a member of the Administrators Group usually results in "issues". For a brief period of time (several years ago now) it was possible to install with an account in the Administrators Group (Interix 3.5). However, after making a big deal about it Microsoft ended this with the implementation of UAC. Stick with using the Local Administrator and your life will be easier.

This file is a self-extracting, self-installing executable. As mentioned earlier you MUST have already INSTALLED Interix (SUA/SFU). You may run this executable from Windows or from an Interix shell. If the program won't run it may be that you download program has not set the file to be executable. Here's a full list of actions:

    % chmod +x pkg-current-bootstrap35.exe
    % ./pkg-current-bootstrap35.exe

OR

    % chmod +x pkg-current-bootstrap60.exe
    % ./pkg-current-bootstrap60.exe

(If you are using csh/tcsh remember to 'rehash' after this).

Now all of the installer components are installed.  This includes the utilities pkg_update, pkg_info, pkg_delete, pkg_add, pkg_create and pkg_sign.  You can learn more about each of these utilities by reading their man pages.

Post Bootstrap Status

You now have the minimum tools to successfully install packages. The tools installed include the installer programs plus several updates to other tools to enhance functionality. When an installation happens (even the bootstrap) we never destroy any files -- they are saved to be restored later if you decide to uninstall everything.

You can view everything currently installed by running, from an Interix shell, the command "pkg_info".

You are now ready to install individual packages that you choose.
If you would prefer to have a standard collection of packages installed all at once you can refer to the "pkg_update Install" section below, or you can obtain a software bundle (for more info see the Software Bundles page.

Doing an Installation

To install a package use the pkg_update utility.  For example, if you wish to install bash you will enter the following command:

    pkg_update -L bash

This command will automatically download and install the most current bash package.  If the package needs to have another package installed with it, that package will be downloaded and installed too.  Pkg_update also takes care of which machine architecture you are using and what is the most current version of the software.

What's Installed, Removing an Installation

To view all of the current packages installed use the pkg_info command.

To remove a package use the pkg_delete command.  You do not need to know the version to delete a package. You can delete it easily as:

    % pkg_delete -M bash

(The '-M' reduces your typing). Refer to the man pages for more information.

If you would like to remove all of the installed packages except for the core programs needed to run the installer you can issue the command:

     % pkg_delete -A

Be VERY CAREFUL with this command. You CANNOT UNDO this command. Read the pkg_delete man page for more information on this option and even more dangerous options.

If you have installed one of the Bundles or a lot of packages and you want to uninstall absolutely everything including the the installer software then issue the command:

    % pkg_delete -AA                 {yes, two A's}

There is no recover from this other than installing from the beginning.

Available Packages

You can find a list of all of the available packages on the Tool Warehouse web page: http://www.suacommunity.com/tool_warehouse.aspx. This list continues to have new packages added and current packages updated with newer versions.

When an updated release of a package is available we announce it through the SUA Community Software Announcements Forum.  To install an updated package you give the same command as when you installed it originally (more information on this further down the page).  The installer will remove the older version for you before installing the newer version.  Any changes in package dependencies will be handled at the same time.  If you have already installed the most current version of a package the installer notices this and will leave things alone.

Package Licensing

The licensing terms for each package can be easily viewed from the /Tools Warehouse web page before you decide to download by selecting the src directory.  It is important for you to understand that there are many different licenses used. Our preference is to use Full Open License software such as BSD and MIT.  We do have many packages that are GPL or LGPL that may place restrictions on what you may do with a package's utilities and/or libraries.  There are other licenses with unusual but not onerous conditions such as the Beer-Ware License (you agree to buy the author a beer if you ever meet him).  We do release copies of the source code for many of the packages here.

Installation Recommendations

We recommend that you always install a package with the command

    pkg_update -L {name}

because this will provide to you the most trouble-free installation since so many packages are dependent on other packages.  This also ensures you of getting the most current release of a package and avoiding an unnecessary download.  Regularly checking for updates is very important for bug and security fixes.  Several times people have reported that they are having a problem with a package that they downloaded 30 to 40 days ago.  During that time the problem has been fixed.

Checking for updates for all installed packages is easily done using the command:

    pkg_update -La

These installations and updates are done over the Internet and packages are not stored on your system -- this helps keep more free disk space on your local system.

You can download packages and save them to a local disk.  Remember that this option can consume a significant amount of disk space as you download more packages.  If you do download packages it is best to keep them all in one location.  The tricky part with downloading packages to save them locally is that you need to download all of the depended-upon packages as well.

If you are the administrator of several machines that have packages installed on them from the /Tools Warehouse and you want to have some control over which packages are installed then we recommend that you maintain a common local repository of downloaded packages.  Then adjust local configurations so that package installations and updates are done from this repository. We recommend you read the pkg_update manual page for the '-C' option on cacheing packages.  See below for more information on this.

Doing an Install

There are two ways to do an installation now (other than Software Bundles). You can make your choice based on what type of installation you are going to do. For the multiple versions of Interix and multiple hardware platforms we strongly recommend you stick with pkg_update for single or multiple packages.  Administrators will want to keep users using pkg_update.

pkg_update Install

When you want to install a group of packages, you want to check that all currently installed packages are up-to-date.  To do an automated check for new packages then pkg_update is the tool for you to use.  You may always refer to the pkg_update manual page for more information.

New Interix users usually want to install a group of packages to match their profile.  Currently three profiles exist: user, developer and administrator. Other profiles may be added in the future based on /Tools member feedback (i.e. you!). By using a profile, a large number of packages can be selected and installed at one time. You can do the installations easily as:

  • user: pkg_update -L -A
  • developer: pkg_update -L -D
  • administrator: pkg_update -L -G

You may add the "-i" option to the above commands if you want to verify (allow or deny) each package as it is selected to be installed.  Without the "-i" option the installations will proceed with little user input needed.

At regular intervals you may want to check if any new packages have been made available since the last time you checked. This can be done with the "-n" option to pkg_update. We recommend that you do use the "-n" option with the "-i" option to control new additions to your system: pkg_update -L -ni

You may also check that all of your currently installed packages are up-to-date using the "-a" option. This will usually take longer than the "-n" option to perform, but is an easy way to validate that everything is up-to-date: pkg_update -L -a

pkg_add Install

The pkg_add utility is the "older" tool that we suggest you avoid using directly.  You can use it when you have a specific package you want to install (such as an older archived version for comparison).  You may always refer to the pkg_add manual page for more information.

We always recommend that you install a package as:

     pkg_update -L {name}

where "{name}" is the package name.  No need for a version number.  The current version number will be discovered. This means you get the most recent/current version without having to worry about a numbering scheme.  The installer will handle the version numbers.  The canonical version number for a package is internal to the package with any version number in the filename being taken as a hint. If the last sentence makes you confused, puzzled, worried, etc. this is why we encourage you to use the pkg_update command.

To see what packages are available visit the /Tools Warehouse web page or visit the /Tools ftp site.

Large Administration

Administrators of several machines usually want to control what software can be installed or updated. Administrators usually like to test and validate software (for a multitude of reasons that we won't cover here) before making this software available to their users.  We understand the needs for this requirement and want to help.

This control can be done setting these conditions:

  1. Cache packages you have validated on a local network drive.
  2. Create your own "list" file in the cache directory with 'tags'.
  3. Set the PKG_LOCATION and PKG_PATH environment variables to this network drive on each system for members of the administrators group.
  4. Have members of the administrators group only use pkg_update for installations and updates.

A good reading of the pkg_update and pkg_add manual pages will help you set these conditions.
We also have available an automated system to reduce your work controlling the updates and installations for multiple machines.  Contact us for more information.

You may be interested in a customized software bundle for your site. Currently there are 4 software bundles available for download. Each bundle is a self-extracting, self-installing file that adds the pkg installer and many packages. The process is keen enough to not clobber systems that already have packages installed -- it all gets integrated together. If you would like a special bundle made for your site please let know -- we were asked to do this almost immediately after making the bundles available. You can view the public bundles at the Software Bundles page).

Problems, Bugs, Your Suggestions

If you encounter a problem installing a package please check that you are installing the most recent version of the package.  The installer itself receives regular updates too.  So keeping the installer up-to-date will help too.  If you still have the problem please let us know either in one of the Forums or by e-mail: tools@interopsystems.com.  The sooner the problem is fixed the less chance that another person will have to face the same problem.

The installer can update itself. We recommend that when a new version is announced you update to that version.  You can safely update the installer by doing:

    pkg_update -L pkg

If you already have the current version the installer will notice and leave things as they are.

If you have a suggestion for a package please let know.  The list of packages has been developed by the requests of Interix users.  We can't promise that it will get done immediately but it will be added to the "TO DO" list.

Frequently Asked Questions

Be sure to review our large FAQ's Page as well.

I'm behind a firewall / I use an FTP Proxy
The ftp utility is used to transfer packages from the ftp site to your machine.  You can set ftp to work with an FTP Proxy server by setting the environment variable "ftp_proxy" to the URL of your FTP Proxy server.  You will find this information on the ftp manual page.  We have adjusted ftp to try and use any Internet Explorer proxy setting automatically.  But we have not expanded it to do a user/password exchange with any proxy.

I'm not allowed to use FTP or My Proxy wants a password
Some people are at secure locations and are not allowed direct access to the Tools ftp site or your network proxy requires a password (which we currently don't support).  You may be interested in downloading the "software bundles." with your web browser

The software bundles are larger versions of the bootstrap program. Each bundle includes all of the installation software plus software packages and their dependencies in one downloadable file. While installing a bundle, no Internet access is required. You can view more information on bundles and their content on the Software Bundles page).

You can direct pkg_update to use HTTP instead of FTP when reaching over the Internet to install or update a package by using the '-H' option. For example:

            pkg_update -LH {name}

I tried to install package XXXX and it failed
Check that you spelled everything correctly.  Typos happen.
Sometimes you may get warnings that can be ignored. Read the message carefully.
You may not have FTP access. Try using the '-H' option.
If you still have questions ask a question in the Forum or send us e-mail.

Can I save the packages locally and install them?
Yes, you can.  If you do try and keep all of the packages in one directory.  When you do an installation (using pkg_add) do it from this directory or be sure to set the PKG_PATH environment variable to this directory.  Download all of the "env_*.tgz" packages too.  You may be interested in the cacheing option with pkg_update (it's easier this way).

Can't find package "env_XXX-bin.tgz" when installing another package
You likely downloaded just the packages you wanted to install and missed downloading all or some of the dependencies.  We always recommend you use the FTP or (HTTP) install whenever possible so this error does not happen.  Otherwise you need to download this "env_XXX-bin.tgz" package too into the same directory as your other packages.  Then try to install again.
Packages at /Tools that need a common action to be taken during an installation depend on another package.  This reduces errors and the amount of clutter on your machine. Remember that software bundles are available too with everything in a single downloadable file.

Can I create my own package?
Yes, you can.  Creating a package is very straight-forward when compared to many other installers.  This is one of the reasons we chose to use this installer.  We have also modified the installer to meet the needs of Interix installations specifically.  Other changes have happened as real needs have been encountered by /Tools members.  If a new feature or bug fix is needed please let us know -- we respond to this swiftly.  To start to learn how to create a package read the pkg_create manual page.

Can I create my own bundle?
If you are interested in a specific set of packages and their dependencies in a bundle please let us know by e-mail.

© Copyright 2006-2011.