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.
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:
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.
@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).
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.
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.
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.