What are the up/downsides of the way Linux does software installation?
From my understanding, all software installation on Linux is done with the same package manager which installs software; but in Windows (and Mac OS X?) the installer program is particular to each software package and is included with those files. Is that correct?
So I was wondering, what are the reasons you would want to do this one way or the other? (Edit: From a CS/technical point of view.)
Posted Dec 20, 2010, 5:56 PM UTC · edited
Upsides:
Downsides:
Also Windows way has one cool side, as software publisher is able to add some effects to installer to show during the installation - it's nice to see screenshots while installing games or whatever. But when installing 100th application it's not cool any more, it's annoying.
There two package formats but thousands of distributions. While a deb package may work on Debian and Ubuntu, due to the large number of shared libraries required by many apps, it's not very likely.
Here are my cons:
** Providing a .deb/.rpm package, can't handle dependencies/conflicts elegantly
** Setting up a repository for any (popular) distribution out there
** Providing a source tarball
** Providing an installer script
I want to add to your pros:
All software comes from one or more trusted sources and is signed to make sure it has not been modified by your friendly government/ISP.
Any program or system file belongs to a package. So you can look up what it is good for and why it has been installed.
Local Deb/Rpm packages can handle dependencies - just install them via dpkg or yum, dependencies will be downloaded and installed automatically. Graphical front-ends do that as well. They are treated like packages from repositories, but obviously won't be updated, and user will be informed if there's any version in his repositories.
Well, there was a project called Autopackage, that took care of installing apps locally and did it in a really friendly manner. I guess that was an answer for independent publishers, as it worked on every distro, installed everything in home folder (in hidden subfolder, to be specific), allowed easy uninstallation and was easy to use by everyone. I have no idea what's happening to it right now, and I'm on my phone so I can't look for it.
Yes, but this will only work if all dependencies are in the user's repos. If the package in questions depends on some library not in the distro's main repository, things are getting more complicated.
interesting
Thanks, this is the sort of answer I was looking for.
Another downside is that not everything is packaged for every Linux distribution. It’s possible to install something without the package management system, but it’s easy to make a mess when you do that and don’t know exactly what you’re doing.
Well, that's not a downside IMO. While it's nothing good, I guess that's not this systems fault that not everything is packaged. Creating Arch packages is child play, and while I've never tried that, deb/rpm creation isn't difficult either AFAIK.
It is a downside.
Take this example: Ubuntu users googles for an application to do some task, finds rpm and arch package, but no deb. User is left puzzled and has to dig through forums to learn that he can compile from source (and build a deb package). This is not as easy as it could be.
True, but you do have the option to build from source. Linux gives you the most opportunity to be able to install a program. Some are easy (repos), some less so, but if you really want it you can probably do it.
This is clearly a downside if you want to install software that isn’t packaged. (And not running Arch.)
For example, I’m waiting for Debian packages for Tahoe-LAFS for months. They say they have packages available, but the repo is somehow broken. If I remember correctly, they don’t have packages for all dependencies.
Sure, it’s not the system’s fault. I’m not saying package managers are bad. On the contrary, just thinking about how awkward handling software felt back in my Windows days makes me cringe. But it is clearly a downside as it limits the amount of available software. For Windows, the publisher hands out the installer together with the software. For Linux, the distributor gets the software from the publisher and packages it for hundreds of thousands of programs. Obviously, this cannot happen instantly when new software is released.