Dependency Hell

Why is the CI/CD project blocked? Because my server I was running things on broke, and I’m left with a year-old laptop. Technically, it is better than the old server. But, it is only 32-bit. It does not provide 64-bit support and this causes a LOT of trouble.

What type of trouble? Much of the software I use is in container. However, docker have discontinued the native amd64 support. The Same can be said for some distribution like Ubuntu. Debian still have it. But this is not true for many other projects. The biggest surprises is that projects that run with JavaScript do not support i386 anymore. How can that be an issue? Node has stop shipping i386 binaries.

While docker itself does not ship 64-bit packages, Debian does. However, that does not imply that you can run all the containers because these are built for amd64 only. While some containers are with i386 support, the numbers are few. Postgres for instance works fine. Ubuntu on the other hand have stopped to shipping it too.

This led to the fact, that many projects my stack is relying on won’t work on the old laptop.

I’ve tried to get some containers going, however, they often depend on some container image, that then depend on a base image. When this is from Ubuntu you only can start to use older release or Debian.

Here the dependency hell begins. At this point you start to not only port your container to i386 back, but also the container they depend on. This works partly well, however, just because the build script executes, and you’re getting a working image, does not mean that the application is working then.

So, you’re not just porting the software of the dependency, you try to fix the build script to cope this. For some that work, but wait. Many maintainers fetch precompiled binaries into the container. Hence, you’re changing this as well.

And when these precompiled binaries are not i386? You can start to build them on your own… Sounds like a good task for a CI/CD, expect it is to get my CI/CD started in the first place….

I’ve spent some hours on this, and I’m sure to get it going. Yet, it costs too much and represents rather a sunken cost fallacy.

Many of the data I do not wish to put into a cloud. However, this is for the moment the best solution until I can afford a suitable replacement.

So far, akendo