0

I have an issue with some proprietary software: it was created a long time ago, requires RHEL5 and a set of libs like motif22, pcre v1, fortran and stuff like that. It widely limits the choice of operating systems I need to follow as Centos/RHEL7 is the last one I was able to find the required set of libraries on the wild. Their number is large (more than 200 with some dependencies).

Now, as I have an idea to upgrade, I have a choice: whether install RHEL/Centos 7 or think of a way to isolate the proprientary software together with its libraries inside its sort of container. Software performs mathematical computations, works with special hardware and performs frequent but low network usage.

The idea of virtual machine is not a good choice, because the software is the only purpose of workstations it is being installed so I need to provide full computational power of it to software.

What is a best choice here? Basically I need to install old proprietary software with old set of libraries (even with i686 architecture) into x64 Linux box, but it should be separate from system libraries. I do not need anything else as constraints to network, CPU, GPU, RAM or other limits. Just installation issues.

I was thinking about flatpak style of setup, but it requires thorough understanding together with extensive testing - something that I cannot afford right now due to the lack of time. So please, could you suggest me what can be applicable to that purpose?

Thank you.

1
  • If you have zero native x86 libraries installed, this app will work just fine if you copy all the required libraries as is. Use ldd or/and strace to find them. May 16 at 21:41

1 Answer 1

3

The idea of virtual machine is not a good choice, because the software is the only purpose of workstations it is being installed so I need to provide full computational power of it to software.

That's a fallacy: modern virtualization is very efficient. (You'll notice that the N·100 Billion dollars revenue AWS/Google Cloud Services/Alibaba Cloud/Azure/Digital Ocean/Oracle Cloud/… generates annually is a strong financial incentive for making that efficient.)

Especially if it's only i686, it's not making any use of the modern instruction sets that CPUs have to make computation faster. This software is bad at using your CPU power, and not running it in a VM will not make that better by any measurable amount!

Also, if it ran on a system running RHEL5, losing a few percents of performance (even if that happened!) would not be a big deal – modern computers must be waaaay faster than the machines that software originally ran on.

So, yeah, a VM is indeed a very good approach.

You can also try containers (read: podman or docker) to run old userlands (Linux distro systems) on your modern kernel. I'd try that first; it's very low effort (assuming RHEL8/Centos/Fedora/Alma/Rocky Linux or derivatives):

sudo dnf install podman
podman run -it --rm centos:centos5

will give you a system into which you can install whatever centos5/RHEL5 depenency you desire. It runs on your native kernel, as your user, so there's really no difference between "normally" executing software directly on your host OS and running it in a container – the container just sees a different file system, user and IPC setup (if you want that).

But honestly, RHEL5 is so old, chances are really that a VM might be the only chance you get as soon as you need to deal with actual hardware).

No matter what you do, you should think about rolling a standardized VM image that you can deploy on any machine. Otherwise, you'll wake up one day and have no reference system that still works, even if you wanted to do something non-VM!

Perspectively, your software is suffering so-called bitrot. Motif22 is a clear indication you will have no way other than whipping up a virtualized X server in a couple of years – the assumptions on display hardware underlying that are simply not valid these days for many modern systems anymore, for example. If this thing mainly does mathematical calculations, find someone to document the UI (yes, that can just mean a bunch of screenshots – I have no idea how complex this thing is!) and then make an estimate of how much effort it'll take to port the UI to something modern. You will also want to dig up the sources for the actual math routines. You say it's FORTRAN - that's great! Chances are the same code compiles just fine on modern compilers, and just runs way faster. Porting the GUI + Core to a modern system still is some effort (been there, done that), but it's going to be worth it – much speedup for relatively little effort, and probably a much nicer user experience are your reward. (And the possibility to run directly within a modern environment, even if containers and micro-VMs make that not much of an issue nowadays.)

1
  • Thank you for your precise answer. I will give a try to podman, never heard of it before.
    – Dima
    May 17 at 5:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.