- Image installers (.dmg files) and complete installers (.pkg files, that bring dependencies with them). I have never seen either of those fail, ever. I have seen installations from .tar.gz -> ./configure && make && make install fail countless times. This is the number one reason for me, and it's so much more important than anything else that I have trouble thinking of other reasons. I absolutely dislike the model that linux package managers use to handle dependencies and I do believe in bringing all libraries/dependencies needed with the installer and compiling them with disable-shared on. To do otherwise is to suffer a whole day trying to install ImageMagick when it should be a one-click task.
- Any other reasons pale in comparison to the first reason. I guess it's nice to have decent trackpad gestures... but I'd forgo everything for easy installers that bring dependencies with them.
What the heck are you doing messing with ./configure && make && make install? Are we back to 1998? apt/yum/emerge/[random package manager] are there for a reason.
Hey sergio - I missed the memo saying that's an outdated way of installing stuff. Must be because I keep coming across instructions that have me doing that. :)
Anyway, my point is that the very existence of a package manager is already misguided. Applications should be standalone (even the ones I install from source should just bring the libraries they depend on with them, instead of relying on a third-party program (the pkg manager) to make their application installable).
If programmers would package their applications like Ruby Enterprise Edition packaged itself, there would be no need for a package manager, and everything would install without fail every time.
REE's installer is interactive; if all installers were interactive (with a fallback flags system for non-interactive execution) then you would be able to customize them without needing a third-party program (homebrew).
Thew fewer third-party programs necessary to install an application, the easier it is to install and the less likely there will be errors. That is empirically true (based on my experience installing things on all 3 major OSs).
One of the reasons I switched to Ubuntu was the fact that they streamlined third party packages in a way that integrated them into the update stream through the PPA system.
The fact that I can get an up-to-date version of Wine, for example, and be notified when there's a new version, is fantastic and easily beats chasing down installers from vendors themselves, or having each of them run their own updater.
> To do otherwise is to suffer a whole day trying to install ImageMagick
Sure, you could do that, or issue [pkg-manager] install imagemagick. It took me yesterday around 15 seconds to install imagemagick without even leaving iTerm. Even brew knows that.
The main advantage of standalone packages is I can choose whatever version of package XYZ I want and push it out rather than being stuck with the package version the repository ships with until either the maintainer updates it or you patch it yourself or argue with some shoddy backport.
To me the main advantage of standalone packages (thanks for reminding me of what they're called) is that they just work (to borrow a phrase from Apple's fan club).
Having to solve installation/compilation/dependency issues is just a waste of time, when those problem don't need to exist at all (things can just be packaged with all dependencies and dumped onto another machine).
I also like the fact that .dmg files are self-contained installers that don't touch any files outside of the ApplicationName.app folder they install to. So that to uninstall something installed from a .dmg file all you need to do is delete the ApplicationName.app "file"/folder.
There's nothing advanced that Mac OS X is doing here. See the Ruby Enterprise Edition installer for how nice the world could be if only there were a change in the way most people think about distributing software in the Linux world. REE installs to its own folder and doesn't touch any system files; it also needs very little from the system besides the compiler (so no dependencies afaik). That's why it just works every time I install it. Now contrast that with ImageMagick.
> to uninstall something installed from a .dmg file all you need to do is delete the ApplicationName.app "file"/folder.
AppCleaner / AppZapper / AppDelete / CleanApp / etc beg to differ. A lot of packages leave a lot of crap behind that doesn't get removed with the .app directory itself.
- Image installers (.dmg files) and complete installers (.pkg files, that bring dependencies with them). I have never seen either of those fail, ever. I have seen installations from .tar.gz -> ./configure && make && make install fail countless times. This is the number one reason for me, and it's so much more important than anything else that I have trouble thinking of other reasons. I absolutely dislike the model that linux package managers use to handle dependencies and I do believe in bringing all libraries/dependencies needed with the installer and compiling them with disable-shared on. To do otherwise is to suffer a whole day trying to install ImageMagick when it should be a one-click task.
- Any other reasons pale in comparison to the first reason. I guess it's nice to have decent trackpad gestures... but I'd forgo everything for easy installers that bring dependencies with them.