Why does OS X not have a default package manager? [closed]

Solution 1:

My opinion (and this is basically just opinion, although I think the evidence might lead you to the same idea) is that it's because of a base difference in the thought process of the open-source vs. commercial software industries.

For open-source software projects, package systems are brilliant because they make it exceptionally easy for any user to get software or keep it up to date - usually just a single command, and now through newbie-friendly UIs like the Ubuntu Software Center. It's the ultimate in convenience for desktop users and server administrators alike.

For the commercial software industry, monetization and marketing are just as important (if not more important) than distribution. You know how open-source Windows apps usually just have a standard NSIS installer, while commercial software tends to have atrocious installers with custom window chrome, logos everywhere, and marketing copy? This is because to commercial companies it is important to insert their brand, marketing, and experience everywhere possible. This means that commercial software firms generally want to control every aspect of their product's distribution, meaning custom websites, installers, and updaters. Companies also want to be able to charge their customers for their products, and conventional package systems have no provision for licensing and charging.

A package environment also requires large cooperation between software makers in order to unify a packaging standard and maintain repositories. Rival software companies want to differentiate themselves from each other, and will tend to be shortsighted and prefer to be as different as possible instead of as user-friendly as possible. Although competition between projects is still present in the open-source world, it tends to be much less significant in the minds of developers. Instead, the open-source software industry is very much about cooperation, which means that it was only natural for major projects to get together and agree upon a standardized distribution mechanism.

The commercial software industry is quickly coming around to the benefit of a uniform distribution system now, but it's due to the efforts of platform vendors instead of software makers, and started not on PCs but on phones: iOS was perhaps the first hugely successful central App Store, then Android brought them, now all of the major phone OSs have them. On desktops, the Mac App Store was recently introduced, and I believe it's been officially announced that Windows 8 will feature an App Market.

What is an app store/market? A central system through which you can download and automatically install software, which also automatically manages dependencies and checks for updates. It's really just a package manager in a nicer suit, and with an eye towards revenue.

tl;dr: the motivations of the open source community led naturally to package systems, while the commercial software industry didn't see the benefits and take initiative. Now the commercial software industry is coming around and introducing package systems in the form of app stores.

Solution 2:

I don't think there is any real reason other than Apple just has not felt the need to include one as it is not that necessary for the bulk of Mac users. With the various flavors of Linux you need to compile from source for everything as all the different environments vary enough that executables compiled in one place may not work right in another. This also requires that something ensures that all dependencies are in place first. The Linux package managers are included to make this simpler for the user.

In the case of OS X, anything compiled for it will likely work (there definitely exceptions between a few various releases, but it is not as sporadic as Linux distros). You can be pretty sure that the binary you are downloading will function. Apple has control over the development and distribution of the OS, so it stays fairly regular and consistent - similar to Windows in that fashion. But because OS X is built on a Unix core and there are enough people that want to use unix tools, there are third party package managers to pull the source, check for dependencies and compile for that particular platform.

Solution 3:

Easy answer:

enter image description here

There's just no need for Apples target users, and the way they've intended their OS to work is incompatible with the concept of a command line packaging system.

What about development? Even there XCode isn't geared towards that workflow. The 3rd party tools exist primarily for building linux based tools and *nix based libraries and projects.