A little tongue-in-cheek I gave my wife for Christmas some movies with a computer theme. We have literally hundreds of history and/or war films on DVD, reflecting both a personal interest and my professional specialization in my earlier life, but when I considered which movies I had seen that were in any way related to computers or computer science (including math) all I could come up with was “Wargames”, which is really about the cold war logic, with a mainframe computer and a guy with a modem thrown in. So I thought we had to diversify a little to reflect my recent change of career. From the resulting selection of math and computer movies yesterday we watched “Hackers”. And apart from being, in my at best half-informed judgement, equally unlikely and unrealistic, this movie made me realize again that I am not one of those people. Not by a far stretch.
I simply don’t love going into the innards of a computer. Neither literally, as in playing with hardware. I really want my computer to be a black box that simply works without bothering me with wires, drives, ports, and so forth–even fans are nuisance. Nor metaphorically. I just don’t enjoy those constant fights that seem to come, almost inevitably, with working with computers, even if you do your level best to avoid them.
I have been running Linux Manjaro on my laptop computer for about a year now, and it’s the perfect OS for me. As a rule, it just works. It updates itself automatically, you always have the latest software available from the repositories, and while just sometimes that means that software’s still a little buggy, that’s usually sorted out quickly. The worst that ever happened to me using Manjaro was when I foolishly manually restarted the machine when the screen went black during an extended update operation. That killed my bootloader (GRUB), and I had to go into the GRUB command line to manually restart Linux, following instructions I found on the internet using my cell phone. That took me two hours to figure out, but then everything was as new again. Oh, and the popular, yet resource hungry Eclipse IDE regularly crashed my display manager, until I finally moved to Intellij.
Today I finally found something that just doesn’t seem to work with Manjaro whatever you try. Or at least whatever I tried. The research project I just started participating in uses primarily .NET Core, which is OK by me, for I am always interested in trying a new language, and from what I’ve seen so far, C# is similar to Java, but somewhat less verbose and occasionally more elegant. For instance, it took me just an hour to write a working REST controller for a tiny application in C#. In Java that had taken me literally days of trial and error, though admittedly that was when the entire concept was new to me. So yes, no problem with C# and .NET Core for me. Or with the IDE we are using in the project (Jetbrains Rider, still under development; it’s an early access program).
At least not on my desktop computer which runs on Linux Mint. Today I wanted to put .NET Core and Rider on my laptop so I could work with them at the university as well. Already Rider was a bit tricky (not sure why), but finally it worked. But after three hours I had to admit that there doesn’t seem to be a way to run .NET Core on Manjaro. At least none open to me. Microsoft claims .NET Core runs “on Windows, Linux and Mac.” That’s true only if your Linux distro is Red Hat, Ubuntu, Debian, Fedora, CentOS, or OpenSuse, or any of their derivates (or if you run it inside a Docker container, but then where’s your IDE?). There’s no installer for Arch/Manjaro, and since they don’t share either package manager or repositories with any of the distros mentioned, that means as Manjaro users we’re out of luck. For in the official repositories there is no .NET Core, and in the unofficial ones (AUR) there are six different packages, two of which are marked as outdated, and the other four all took half an hour of building the language runtime on my computer, only to fail at 30% progress with some fatal and, for me, completely unintellegible error report. I tried a few other ways, including a shell script that failed claiming an “unbound variable”.
After three hours, I surrendered. That is the first time I couldn’t get something to work on Manjaro. Even when I needed an older version of Ruby to work with Tk, and both Ruby version managers refused to play along, the internet finally helped me find a solution. But this time hardly anyone even seemed to have the wish to run .NET Core on Manjaro. I don’t know if Arch/Manjaro users hate Microsoft bad enough, or vice versa, but whatever the reason, this simply was beyond my capabilities.
So I sighed and resolved to put a second, Ubuntu-based Linux distro on my laptop alongside Manjaro just to run .NET Core. I selected Linux Lite, and sure enough it was no problem to install it, and within a few minutes I had both Rider and .NET Core run on that partition, and my small piece of software worked as well.
What no longer worked though was Manjaro.
As I said, I once killed my bootloader, and I was all prepared to assume I had done it again. Except grub would start just fine, and list my Manjaro just fine, only it wouldn’t load it. All I got was a black screen. Or actually, it was a shade of very dark grey–there was some structure to the background, and there was no blinking cursor as there usually is on a Linux black screen. Not sure what it meant, but all my attempts to get Manjaro to start again were in vain. I tried manually from the GRUB prompt. I tried to repair grub from the terminal in Lite. In the end it took me another two hours before I stumbled over the decisive hint, which is that GRUB will work with Manjaro and another distro only if it’s the Manjaro GRUB, meaning I had to go into Manjaro and there re-install GRUB, which was then an easy thing to do once I knew.
So in the end I had wasted five hours on a decidedly second-best workaround to a problem that should not have been there in the first place–getting a perfectly standard language framework to run on a perfectly standard operating system.
And those are the things I just do not enjoy about working with computers, and never will.