Linked by Thom Holwerda on Mon 23rd Jun 2008 16:51 UTC, submitted by sjvn
Linux Installing software on Linux. In the world of online minefields, this is the big one. Back in the day, you installed software on Linux by compiling it manually. Time-consuming, but assuming you had a decent knowledge of gcc, make, and maintaining library files, this could actually work. Later one came the package management systems that were supposed to make installing software on Linux a breeze: rpm, dpkg, and so on, and so forth. Since human beings have the innate tendency to assume that everyone else is wrong and only they are right, we are now stuck with 3453495 different Linux package managers. Denis Washington, a Fedora developer, is taking steps to resolve this issue.
Permalink for comment 319731
To read all comments associated with this story, please click here.
Some minor corrections.
by Moonbuzz on Tue 24th Jun 2008 13:45 UTC
Moonbuzz
Member since:
2005-07-09

"Back in the day, you installed software on Linux by compiling it manually."

Assuming "Make install" is more manual than "apt-get install", then yes.

"...assuming you had a decent knowledge of gcc, make...this could actually work."

Let's bend the words around and journalistic style be damned. While building from source isn't a one-click effort, it's not that cumbersome, and demands zero understanding of either gcc, make or libraries. In fact, it demands nothing more than being able to read and follow basic instructions, the *NIX philosophy, being "don't treat your users like apes".

"...package management systems that were supposed to make installing software on Linux a breeze".

I believe "did" should be the actual verb rather than "were supposed", as would anyone who used Synaptic/Aptitude/Yum/etc. testify. In a world where a user can change his desktop environment from KDE to GNOME and back while installing Apache/MySQL in no more than a few mouse clicks, how more "breezy" should software installation get?

"rpm, dpkg, and so on, and so forth."

Actually, just those.

While not an exact measurement, if you check Distrowatch.com top 10 list, you'll find that all of them use either RPM or DPKG. The other two major formats are Slackware's "tgz" and Source packages (e.g. Gentoo). The writer could've mentioned that the big issue is that the implementation of the formats is different in each distro, or that the packages are compiled differently, or any of the other issues that exist, rather than "so on...", but that doesn't sound as "big". This is similar to saying "there is so much to know about light switches! turn it on, and off and so on and so forth!!". If you don't know, don't exaggerate.

"Since human beings have the innate tendency to assume that everyone else is wrong and only they are right"
Those pesky humans and their innovations! Jonathan Swift would've been proud of you.

"we are now stuck with 3453495 different Linux package managers." Exaggerate much?

Here's the deal. There are about several hundred GNU/Linux distros in the world. Most user (I'd wager about 90%), however, use about 10 of those. Those 10 distros, as I mentioned, have about 3-4 different package management systems, with varying levels of compatibility between them.
Those levels can go anyway from "mostly compatible" (say, Knoppix and Debian), to "somewhat compatible" (Ubuntu/Debian), to "mostly not" (SUSE/Red Hat) to "not compatible" (RPM/DEB). Despite that, since all of those are basically compiled versions of the same source code, there are tools that can convert between the different formats. Even this situation is orders of magnitude better than, say, Mac and Windows, or other systems.

However, as each distro represents its founder(s) idea of how he/she/they believe a GNU/Linux OS should function, incompatibilities exists, and I'm tempted to say, will always exist. To be compatible, first, everyone must abide to the same rules of system hierarcy, of where each file should go (/usr/bin/[local-site/local]/etc), of which versions should each compiler/library use, whether dependencies should be immediately resolved, suggested, recommended, or else. If your distro creator wants to use the latest QT/GTK/other libraries, or wants to use a different-older/newer compiler, or, if they want to use a source packaging system like Gentoo does, would break compatibility and won't "play nice" with what "the others" want.

Free Software, which is the foundation on which GNU/Linux is build, is based on a simple idea: you are given the code, and can do whatever you want with it, to satisfy your needs and demands. If you are not satisfied with other's solutions, you are free to create your own. Same with package management. Creating API's, XML formats, and any other version of "ground rules" will only work as long as developers will want to use it, and "working nice with others" just isn't what most Distro creators have in mind, but rather creating the best solution they can, according to what *they* think the best solution is. And "playing nice" just isn't compatible with that.

Reply Score: 3