Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
May the source be with you, but remember the KISS principle ;-)
Skepticism and critical thinking is not panacea, but can help to understand the world better

SFU Packages Installation

Package Install Instructions

With SFU 3.5 all /tools applications 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, but it has essentially the same "flavor" as installers with BSD or Sun.

The first thing to do to "bootstrap" the installer is to download the file "" to your computer. The installer can be run by the Administrator or by a member of the Administrators group. This file is a self-installing shell script. So run it as:

% sh

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

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

Doing an Installation

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


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.

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. Refer to the man pages for more information.

Available Packages

You can find a list of all of the available packages on the /Tools Warehouse web page: (Requires login.)  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 /Tools Announce 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 all of the source code for all of the packages here.

Installation Recommendations

We recommend that you always install a package with the ftp URL ( because this will provide to you the most trouble-free installation since so many packages are dependent on other packages. Also, by  using the ftp URL just when you need the package, you ensure yourself of getting the most current release of a package. This can be 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 and have just installed. During that time the problem has been fixed. Always get the most recent version. Also 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. See below for more information on this.

Doing an Install

There are two way to do an installation now. You can make your choice based on what type of installation you are going to do. If you are going to install (or update) a single package then use the pkg_add utility. If you want to install (or update) a large number or group of packages then try using the new pkg_update utility. Administrators of several systems will want to train their users to use pkg_update.

pkg_add Install

The pkg_add utility is the tool to use when you have a specific package you want to install. You may always refer to the pkg_add manual page for more information.

We always recommend that you install a package as:


where "{name}" is the package name. Instead of using a version number please specify "current" as the version number. 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.)

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

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 -A
developer: pkg_update -D
administrator: pkg_update -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 -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 -a

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.

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: 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:


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 "TODO" list.

Frequently Asked Questions

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.

I'm not allowed to use FTP
Some people are at secure locations and are not allowed direct access to the /Tools ftp site. You may be interested in ordering the /Tools Toolworks CD. This CD will correctly install from itself all of the packages or just the packages that you choose. This CD is regularly accepted after going through a "clean room" check so that it may enter a facility. The Toolworks CD is updated regularly. If you have a special need please let us know so that we can help you.

I tried to install package XXXX and it failed
Check that you spelled everything correctly. Check that you are using "current" rather than an actual version number in the name. Check that the filename ending is ".tgz". Typos happen.

How can I avoid always typing ""
You can set the environment variable PKG_PATH to this URL. Refer to the pkg_add manual page for more information.

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 the all of the "env_*.tgz" packages too.

Can't find package "env_XXX-bin.tgz" when installing another package
You likely downloaded the packages you wanted to install. We always recommend you use the FTP URL 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.

What is this file ".netrc" about?
The ".netrc" file has been around for a long, long time. It is not a new invention. You can find full details on the ftp manual page. The ".netrc" file stores ftp login names and passwords for ftp sites. It is similar to the ".rhosts" file for rlogin and rsh. For security it needs to be owned by the user and should have a permission mode of 0600 (rw-------). Having your /Tools member name and password in the ".netrc" file makes installation of packages (and dependent packages) happen in an easier manner.

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.


The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D

Copyright 1996-2018 by Dr. Nikolai Bezroukov. was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) in the author free time and without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting development of this site and speed up access. In case is down you can use the at


The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: September 12, 2017