How can I install a package from an old version of Ubuntu's repositories?

Hi! I’m attempting to set up version 4.5.1 of Ball Aerospace’s COSMOS software. One of the dependencies it has is the Ruby Gem “qtbindings”, which, in order to install, needs the “libsmokeqt4-dev” package installed. Unfortunately, on my Ubuntu 20.04 installation, that package can’t be found. However, according to Ubuntu – Details of package libsmokeqt4-dev in bionic, that package does exist in the repositories for Ubuntu 18.04. How do I install that package that’s intended for an old Ubuntu?

A topic after my own heart…the TL;DR is find the package on the Ubuntu site package listings, download and install…or try to. Some times the dependencies will be OK…sometimes they won’t. This is part of why I ditched XUbuntu/Debian. Once you’re forced into upgrading to keep security up to date you are forced to move from packages that work to ones that won’t. In my case GTK/XFCE4.14+ breaks everything and anything Multi-XScreen/GPU after 18.04.

https://packages.ubuntu.com/

1 Like

And libsmokeqt4-dev depends on Qt4 which Ubuntu dropped support for in 20.04. It’s possible to install the Qt4 libraries from a PPA but you’ll probably run in to more unmet dependencies with libsmokeqt4 and also run the risk breaking your linux install. Additionally the package has not been maintained for many years. I would avoid this route if at all possible.

I don’t know anything about COSMOS software but have you tried running it as a Docker? I see they have official support for v4.5.1

Yeah, I guess I can manually install all the dependencies. I was just hoping to pull the package from 18.04 and have it auto-grab the dependencies, the same as it would if it was included with the modern Ubuntu (or indeed, the same as it would if I were running 18.04).

I suppose I will try that. I’m trying to run a configured COSMOS installation from a backup off an old computer, I guess I’ll try and finagle it into the Docker. Thanks for linking that!

Nope if a dependency doesn’t jive with the old package you will have to manually hunt all possible ones and deal with conflicts. Like I said, sometimes it works, other times it’s a dependency hell that more often than not sucks away a few hours of time for nothing. The caveat is if you can make an AppImage of the program in a VM or something with the last release that it worked for.

I have a few deb I’ve carried over from 18.04 that I’ve been able to run just fine on 21.04+ but it’s always a craps shoot. Just gotta try it and dig in a bit.

Is compiling a saner approach vs package dependency hunting?

1 Like

It could be.

You can also add an official repository to your apt source list file and pull in the package + dependencies that way. I know Arch and Ubuntu are big on their community repositories but when it come to old software, I am hesitant and always go to the official repositories to ensure that the security updates and bug patches have been included.

Could anyone talk me through how to run the Docker image linked above? I’ve never used Docker before and I’m pretty lost in terms of how to actually load anything from what’s given to me. The command it says to run doesn’t do anything (and there’s no step saying what to download where).

These would be the bare minimum steps to launch the container, but I’d suggest reading some basic guides on managing containers before getting started. Digital Ocean has a short one covering the most basic commands.

sudo apt update && sudo apt install docker.io
sudo usermod -aG docker ${USER}

Reboot your PC.

Then run the following to pull the container and launch:

xhost local:${whoami}
docker run --net=host --rm -e DISPLAY -e QT_X11_NO_MITSHM=1 ballaerospace/cosmos

If you’re wanting to attach your existing backup to the docker, you’ll need to mount it with -v. Replace /home/username/path/to/cosmosfolder with the path to your config folder.

docker run --net=host --rm -e DISPLAY -e QT_X11_NO_MITSHM=1 -v /home/username/path/to/cosmosfolder:/cosmos ballaerospace/cosmos
1 Like

It’s one of the reasons I got away from Ubuntu distros.
Ever changing repository and no notice of anything

Yup I’ve ditched Ubuntu for several reasons but this is one.

@regulareel I was going to suggest just building from source but that can be a bigger waste of time. Sure it could work fine but I’ve often found you spend just as much time hunting fixed == version bs in the source (why u no use equal or greater than ;p) and then spend time building fighting build errors and other dependency issues and it’s just a bigger mess with a greater time investment. That said it’s always a “you have to try” situation. I could have always tried to resurrect something doomed where others may have had decent success with the same approach just because they were trying to build something written better.

1 Like

For one application, with no prior understanding of Docker, I’d personally just set up a VM of an appropriate age version of the OS and get it done that way…

1 Like