Most of the time, RPM (especially in conjunction with yum) is a decent package management solution. However, I can think of two common circumstances when you don’t want to let RPM install a package:
- You don’t have root permissions on a system such as a shared cluster
- You are an administrator on a shared cluster and you can’t risk having a package over-write system-critical files
One approach is to extract the files from the RPM package and install them manually. I used this method to install FDTD Solutions from Lumerical on the STOKES Linux cluster. The application is distributed as an RPM package. I never install a third-party RPM as root, because a badly constructed package might over-write a system-critical file that some user is depending on. I downloaded the appropriate TAR file from Lumerical, uncompressed it, and looked at the contents. There is a simple script called install.sh which checks to make sure the user is root and then tries to install a hardware key driver and an RPM that contains the FDTD software. Here are my recommendations for installing Lumerical products on a cluster:
- Instructions on the Lumerical web site say to install the hardware USB key driver on every compute node. This is a bad idea unless you have a small, single-user cluster. Those instructions fail to mention that Lumerical also offers FlexLM-based network licenses. If you are installing Lumerical products on a production cluster, get them to give you a FlexLM-based license!
- Use the following command to extract the files from the RPM:
rpm2cpio FDTD-8.5.3-1.rhel5.x86_64.rpm | cpio -idmv
This could get messy, but fortunately, the FDTD Solutions app is self-contained within the /opt directory. I copied the application directory to our apps directory, and it runs fine from there.