This is a short page with documentation about the RSX Package Manager

The RSX Package Manager is a system for downloading and installing software on an RSX-11M-PLUS system, and keeping it up to date with a minimum amount of effort.

It can download, install, update, and bring software up at boot time in RSX, with a minimum amount of manual effort.

It supports downloading packages over both TCP/IP and DECnet, and it is very easy to manage and setup your own repository of packages as well, if you want.

How to bootstrap

First create a directory in which you will be having all your RPM packages.

The suggested/recommended directory name is LB:[RPM]

To bootstrap RPM, you need to download the RPM package file. It can be found using ftp to Mim.Stupi.NET. Login in as user rpm, and move to directory US:[RPM].

Alternatively, you can also download the file over HECnet using MIM"GUEST GUEST"::US:[RPM]RPM.PKG.

The RPM package is named RPM.PKG, and it is a universal library.

Download the package to your desired directory, and change your default directory to this place.

Once the package file have been downloaded, you need to extract three files. That can be done with the following commands:

Once these files have been extracted, you should edit CONFIG.CMD to match your desired setup, or just run @RPM CONFIG

Next run RPM in order to get a current list of existing packages. This can be done with the command:

@RPM FETCH

After the package list have been downloaded, you can start using RPM to install packages you would like to have available on your system.

Using RPM

The first thing you probably want to do is install RPM, using RPM. This will enable you to pick up new versions of RPM when they are released. To install a package, you use the INSTALL command, so do the following:

@RPM INSTALL RPM

Once this has completed, you could do

@RPM LIST

to see what other packages are around, and pick ones you would like to install.

When you install a package, it immediately becomes active and you can use it as much as you like. However, at the next boot, the installed packages will no longer be active. To solve this you need to run

@RPM BOOT

this will activate all installed packages. This command should possibly be done as a part of the startup script for RSX (LB:[1,2]STARTUP.CMD).

Keeping software up to date

Software occasionally get updated. New functions, or bug fixes typically are reasons for updated packages, but sometimes there might also be changed dependencies, or changes in installation or boot scripts.

In order to update any package, you can just give the command:

@RPM UPDATE <package>

If you don't give a package name, then all out of date packages will be updated.

But this will only update packages based on the information you have on your system. If a new version have been made available from the server, you need to make your system aware of this. That is done with the command:

@RPM FETCH

Since the combination of FETCH and UPDATE is such a common operation, there is a separate command that combines these two commands. So in the end, if you want to keep the software on your RSX system up to date, all you really need to do on a regular basis is:

@RPM ALL

and any new changes will be downloaded and installed for all packages that you already have installed. This could even be put in a batch job.

A couple of important points to be aware of

RPM keeps tracks of installed packages in a file named INSTALLED.LST. If this file is deleted, RPM will think that no packages are installed.

All package files are just univeral libraries. As such, you can explore them on your own easily. There is no written documentation about what is required to be in a package, but the RPM tool do have certain requirements on a package, and if you try to use RPM on a univeral library that do not have all the expected pieces, things might break in various strange ways. However, as installed packages are tracked in such a simple file, you are never further away from repairing any really bad state by just deleting the INSTALLED.LST file.

Available packages are kept in a file named RPM.LST. If that file gets corrupted in strange ways, just delete it, and a new file will be downloaded again at the next FETCH.

If you get into a situation where the RPM software itself gets broken, you can just download the RPM package as described in the bootstrap section, to recover. Clean out any other files you think might be bad. If you retain INSTALLED.LST, the installed state of all packages are retained, even if you reinstall RPM.

The RPM system have a small HELP text that can be brought up by giving the command:

@RPM HELP

Here is a list of available packages.

Creating your own packages

If you would like to build packages of your own, there is at the moment no proper documentation for this, but the basic principle is that there is an MKRPM command, which is also included in the RPM package, which can be used to create packages.

MKRPM requires a package description file in order to create the package. This file needs to be in a specific format, and the filename of this description file is given to MKRPM to build the package. The best way to create a new package is to take an existing .RPM file (the default extension of the package description file), copy it and modify for the package you are creating. There are plenty of existing .RPM files on MIM, which can be used for this. A suggestion is to take MIM::LB:[NEMA]NEMA.RPM as a source template.

Final words

If you have any questions, just send a mail to Johnny Billquist. Any suggestions about further development, features, bugfixes, questions or just comments are welcome.