Why does OS X not have a default package manager?

6,987

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.

Share:
6,987

Related videos on Youtube

hekevintran
Author by

hekevintran

Updated on September 18, 2022

Comments

  • hekevintran
    hekevintran almost 2 years

    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?

    • uxout
      uxout almost 13 years
      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.
    • hekevintran
      hekevintran almost 13 years
      And is not to find an authoritative source the point in asking a question in the first place?
    • uxout
      uxout almost 13 years
      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.)
    • uxout
      uxout almost 13 years
      Or, to be more concise, all answers are probably just going to be "Because they don't think it needs one."
    • jcrawfordor
      jcrawfordor almost 13 years
      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.
    • surfasb
      surfasb almost 13 years
      Yeah this isn't a question with a deterministic answer. Should be closed.
  • Ken Williams
    Ken Williams over 6 years
    I don't think this really answers the question. These same target users also wouldn't care about init scripts, or crontabs, or that kind of stuff - but Apple still developed launchd to manage that part of its infrastructure better. A lot of people think a package manager would be a welcome development too.
  • Muhammad bin Yusrat
    Muhammad bin Yusrat over 3 years
    Package manager doesn't have to be CLI anyway, why do we presume that?