Installing contributed packages on plan9

Essentially we want to download software and install packages on the plan9 system that we have. One way to do this is to use replica/pull from the contribution source tree located at These are all of the packages available to users that aren’t part of the official plan9 installation. To make installing software that isn’t in the original plan 9 version we will install a package management GUI to assit in installing packages such as python or a game. Below is the gui version of the package management system.

A package management gui

If you browse the sources via your browser ( you can see all of the users that have contributed software to the plan 9 system.

Contribution index for plan9

Where all of the directories are users that have written software for the system. Essentially you would like to mount this source tree onto your system so that you can install some software.

Open a terminal by right clicking in an empty space and selecting new from the green menu.

Hold down the right mouse button and drag that across the screen to a large enough window size for your gui. Run the command:

term% 9fs sources

A copy of the contributions index is now mounted at /n/sources/contrib in your system. Now that has been accomplished you can browse the sources on your local system by ‘cd’ ing into the directories that are part of the sources, and using  ‘ls’ to get a print out of the source list.

As the package management system contrib is NOT part of the official installation, we will have to install it from the contribution index. We can then download and run the package management gui. So first of all, run all as one command.

term% /n/sources/contrib/fgb/root/rc/bin/contrib/install fgb/contrib

You will see some output, and contrib will have been installed. Now to start the GUI you must run:

term% contrib/gui

Installing Python on plan 9

Now that we have the gui open and we are connected to the internet, we can start downloading some packages. The first package that we might like to get is a python port. The source for this port can be seen in the user n/source/contrib/bichued directory on our local system or at the source tree at the plan9 site( ). There is a lot of source code and mostly we don’t need to look at that now, we just want to install the python package, and in this case python is reliant on several other packages that have been ported. You will notice that in the gui there are four buttons in the main portion of the window and one of them is labeled Depends. If you click on that you will notice that it brings up several dependencies for the package selected on the left. In our case we want to install python and its dependencies so we locate Python in the left hand column of  Packages and click on Depends.

You will notice that it depends on three other packages! This current gui installer (and contrib as well) don’t have a system to download the dependencies automatically so we have to install them ourselves by tracking the packages down on the left and installing them and their dependencies.

First of all we will want to install openssh and its dependency openssl.

Locate openssl (openssh ‘s dependancy) on the left hand column by scrolling with the mouse. Once openssl has been located, you can check that it doesn’t have any dependencies by clicking “depends” again. It will give a message telling you that it is fetching some information about the package and then nothing will show up in GUI window.

Then click the bottom left button “install”. That will start the installation and begin running contrib/install on the package. Note that all this can be done in the terminal by using the syntax contrib/install user/package.

Now openssl has been installed we can locate openssh and begin installing that. Follow the same procedure to get all the dependencies for python. These are listed below:

  1. z
  2. bz2
  3. openssh

And once they are fully installed we can select python from the left hand side of the menu and click install. The full installation takes some time, so you might have to be patient at this point before the entire package is installed.


Updating your system:

While waiting for python to install fully, we might want to also update the system. Repeat the procedure to create a new window with a terminal. Run,

term% pull

That will get the latest packages for the official release of plan 9 – that as well might take some time, so for now you can probably hide those window and wait while everything updates.


4 thoughts on “Installing contributed packages on plan9

  1. Alex says:

    term% /n/sources/contrib/fgb/root/rc/bin/contrib/install fgb/contrib
    produces this error:
    cannot write in dist/replica

  2. Jeremy says:

    Does python really depend on openssh? the depends list for python mentions openssl, not openssh.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: