4 ms·
The reason package management works better on Linux is not because there's a better package manager program. Rather, it's because there are hundreds of develope
by vasi 16y ago
The reason package management works better on Linux is not because there's a better package manager program. Rather, it's because there are hundreds of developers for Debian, Fedora, et al who put serious time into making sure the packages themselves work well. Few OS X users really care about Unixy packages, and even fewer actually work on one of the package managers, so bugs just don't get ironed out enough.
I don't see much Apple is likely to do to help. They could bless a package manager as official, include it in OS X, and pay for build-boxen and for people to work on it; but you'd still need a lot of community involvement, and that's not Apple's cup o' tea.
Apple could also just make a few things easier about building nix packages:
Currently the OS X linker will automagically look for libraries in /usr/lib and /usr/local/lib by default, this should become easier to turn off so that packages don't end up with hidden dependencies on stuff the user threw in /usr/local.
* A lot of libraries that are extremely common on other nix aren't included in OS X, eg: readline, iconv, gettext. But many of these are GPL3, so don't count on Apple being helpful.
Universal, backwards-compatible binaries are currently a PITA to build from the command-line. You need to specify the SDK, DEPLOYMENT_TARGET, and compiler separately; and then if you ended up using different SDKs for different architectures, you need to use lipo to combine the results. Some way to specify all this stuff at once, and use sensible defaults would be great: 'gcc --sdk=ppc/gcc-4.0/10.4 --sdk=x86_64/clang/10.6 ...'
- philwelch 16y agoOne thing they can do is package-manage the Ruby/Python/Perl/Apache/vim/emacs/gcc/etc. that either comes built into Mac OS X or gets installed with the developer tools. Current package managers either have to work around that (Homebrew) or maintain an entirely separate repository (Macports).