Expert of Linux dependency Hell with their package manager

(Last Updated On: September 12, 2018)

After I sent this,

Linux Mint Is Still the Leading Desktop Distribution

I got this reply from a newsletter subscriber: (thanks to this person sending this)

One potential problem with Linux Mint, is that you can still experience dependency Hell.  Its default package manager, like most linuces, cannot allow two versions of any library or software to co-exist on the same computer at the same time.  Generally, but reportedly not always, such package managers will also not allow you to install software into a directory of your choosing; as is almost always the case on Windows.  You may be able to use the second-generation package manager LinuxBrew on Mint and other Linuces; and that may be a very good idea if it works, but I make no guarantees.  The main Distros built around a second-generation package manager are Gobo Linux, and NixOS.  NixOS uses a declarative language package manager (for better or worse), and has a much larger user base, but it is pretty new.  In the past, it had a problem with uninstalling old versions of packages, but I think that is much improved by now.  Gobo Linux does some fancy footwork so that it has a Mac-like file structure.  It can download a file and all its dependencies into a single directory, and you can make it anywhere you like.  Some tech pundits complain that software doesn’t reside in typical directories for Unix, such as /bin and /usr, but this is the way things work on the Mac, and this feature seems pretty popular with users.

Ubuntu-based derivatives have better driver support, so maybe if LinuxBrew works well for you, this might be the best route.  I had lots of problems with dependency Hell in the past, and quit using linuces.  If I were to go back, I would either use LinuxBrew, or use NixOS or Gobo Linux.  Of course, there are Hackintoshes, if you want to go that route, but you probably don’t want to blog about that.
—-
Arch too is usually managed with pacman, which, like most Linux package managers, is subject to dependency Hell.  I.e., if you want to install two different programs that use e.g. two different versions of a library like zlib to read .zip files, when you go to install the second program, it will offer to uninstall the old zlib, and update to the newer version.  It will also be offering to uninstall the program that used the old version of the zlib, and will not allow both to be on the same system at the same time.  This is a tame hypothetical example of the kind of dependency Hell I’ve experienced.  If you, like I, might prefer to put audio apps or games in their own separate directory, so as to keep an eye on the size of all audio apps or games, it is either very hard, or impossible.  I have a background in computer programming myself (surprise), and believe this above all else, is what has hampered the large-scale adoption of Unix/Linux.  While I’ve only posted this point of view one other place, I’d really like to see second-generation package managers eclipse the old ones.

Manjaor Linux

I was thinking it probably used pacman, but now notice that Manjaro uses pacmac, a package manager designed for the Mac, but is not a direct port of pacman.  I don’t find a lot of documentation on it online.  Not a good sign, but perhaps it has a good man page.  My recommendation is to try to determine if pacmac can install to a specified directory, and tolerate different versions of libraries to co-exist at the same time.  To be fair, many users don’t need anything but the latest versions.  If the latest version of some software comes up with a bug that makes it unusable, you will probably want to find an old version, or a beta.  If you do that, if ANYTHING else use ANY library in common with it, hello dependency Hell.  If you’ve ever been caught in that, you’ll know it can be a session frustrating enough to make you want to pull out your hair.  I consider these landmines waiting to happen.
One time (if memory serves, or else I’m just confusing it with a time I tried to uninstall a media player, but I think that was a second time such a thing happened)  tried to install a different version of a program on Ubuntu, and since they have taken the insipid step of making it so that if you e.g. uninstall a media player, game, or ANYTHING it comes with, you wind up uninstalling the whole GUI desktop.  I wound up with a bash prompt, and NO desktop or desktop apps installed, whatsoever.  I think it was a command line package I was trying to downgrade.  I’m trying to warn you off of such nightmares.  Fortunately, Arch does not have such a ridiculous setup, but there’s still really still almost no end to the chaos that a conventional package manager can cause if you try to install another version.  This NEVER happensOne potential problem with Linux Mint, is that you can still experience dependency Hell.  Its default package manager, like most linuces, cannot allow two versions of any library or software to co-exist on the same computer at the same time. on Mac or Windows.  Mac and Windows are by far more popular.  Go figure.
PS: I was told you can install a package to a user-specified directory in CentOS.  I looked at it briefly, and it didn’t seem very easy.  I think there is a way to edit an RPM package to install in a user-specified folder, also; FWIW.
PPS: The nick I use on technical forums the most often is CodeLurker, if you want to know who to have it signed by.

Red hat Linux vs Fedora

They share a lot of code, apparently.  Red Hat Enterprise, if memory serves, is the more stable of the two, being for businesses, but at the cost of a slower release schedule.  Fedora would be for “consumers.”  CentOS, like Red Hat, uses RPM (Redhat Package Manager) archives.  It is probably possible to install to different directories in Red Hat, like CentOS; but CentOS uses Yum to install RPM packages.  I’ve been told by a system admin friend you can install to different directoris in Yum, so maybe Red Hat too.  I tried to look up how to do it in Yum, but it didn’t look easy (to me, anyway).  I think all are susceptible to dependency Hell.
For automated trading, I’d choose Red Hat over Fedora, for the sake of stability.  While Fedora might have more drivers, and should have more recently updated software, Red Hat is Big Blue’s (IBM’s) flagship.  However, I’d hold out for NixOS, Gobo Linux, or something that uses a second generation package manager, such as Nix package manager, the Guix package manager, “based loosely on Nix,” or LinuxBrew.
Note that OS independent package managers such as the three 2nd gen ones I listed might run on any distro.  I forgot to mention that most Linuces are FAR more secure than ANY version of Windows.  First, Windows admits tons of hacks all the time, at hackfests.  Second, most system security breaker hackers (I don’t want to dignify them by just calling them “hackers”), don’t bother with Linux/Unix, because it has so few users.  Third, it just seems to have much stronger security.  I imagine Big Blue is pretty quick to eliminate security vulnerabilities when it finds them.  When I looked at more secure distros, the trade-off there seemed to be fewer drivers for these more exotic distros – but then, it doesn’t really matter if you can do what you want on them.  This would me more true for a trading system than for general use; IMHO.
NOTE I now post my TRADING ALERTS into my personal FACEBOOK ACCOUNT and TWITTER. Don't worry as I don't post stupid cat videos or what I eat!
This entry was posted in Quant Development and tagged , , , , on by .

About caustic

Hi i there My name is Bryan Downing. I am part of a company called QuantLabs.Net This is specifically a company with a high profile blog about technology, trading, financial, investment, quant, etc. It posts things on how to do job interviews with large companies like Morgan Stanley, Bloomberg, Citibank, and IBM. It also posts different unique tips and tricks on Java, C++, or C programming. It posts about different techniques in learning about Matlab and building models or strategies. There is a lot here if you are into venturing into the financial world like quant or technical analysis. It also discusses the future generation of trading and programming Specialties: C++, Java, C#, Matlab, quant, models, strategies, technical analysis, linux, windows P.S. I have been known to be the worst typist. Do not be offended by it as I like to bang stuff out and put priorty of what I do over typing. Maybe one day I can get a full time copy editor to help out. Do note I prefer videos as they are much easier to produce so check out my many video at youtube.com/quantlabs