Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Debian has APT. Red Hat has RPM. FreeBSD has Ports. NetBSD has pkgsrc. Mac OS X has MacPorts, Fink, and Homebrew, but those are all third-party package managers. Why does OS X not have a default package manager?

share|improve this question

closed as not a real question by Shinrai, Linker3000, surfasb, 8088, Sathya Sep 1 '11 at 5:20

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

Voted to close as not a real question since I think this is probably going to just encourage conjecture. If there's an authoritative source, I trust that the other Super Users will call me out on this. –  Shinrai Aug 31 '11 at 22:44
And is not to find an authoritative source the point in asking a question in the first place? –  hekevintran Aug 31 '11 at 22:56
My point is that generally the only people who know info like "Why doesn't <software X> have <feature A>?" are the application developers, and they very rarely make that information public. By comparison, if I asked, "Why does Windows not read ext3 formatted partitions?" I wouldn't expect anybody to have an answer other than conjecture. It's just my judgment call that there's incredibly unlikely to be an answer. (Certainly nothing against it if that turns out not to be the case, which is why I didn't downvote it.) –  Shinrai Aug 31 '11 at 23:00
Obviously I'm a little biased since I just wrote a big long answer, but I think this is a fully valid question. Windows and OS X both lack package managers, they're really a *nix thing. I think there's a solid reason that this is the case, and it's an interesting reason since this is actively changing right now. –  jcrawfordor Aug 31 '11 at 23:06
Yeah this isn't a question with a deterministic answer. Should be closed. –  surfasb Aug 31 '11 at 23:08

3 Answers 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.

share|improve this answer

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 environenment also requires large cooperation between software makers in order to unify a packaging standard and maintain repositories. Competing software companies want to differentiate themselves from eachother, 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 tens 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 succesful 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.

share|improve this answer

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.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.