Archive for January 2009
MacPorts guide
Installing: Easiest is to just get the .pkg installer and run it. After it’s done, you should edit your .{bash,zsh}rcs and put
PATH=$PATH:/opt/local/bin:/opt/local/sbin MANPATH=${MANPATH}:/opt/local/man
They recommend adding these paths at the front; I prefer adding them at the end.
At some point you might want to make changes to MacPorts itself; when that happens you can easily switch to using MacPorts from SVN, with
svn co http://svn.macports.org/repository/macports/trunk
then cd to base and do the usual
./configure make sudo make install
Staying updated (like apt-get update): Do
sudo port -v selfupdate
regularly. There is no need to do “port sync”.
Staying upgraded (like apt-get dist-upgrade): Do
sudo port -u upgrade
regularly.
Changing individual ports: This is the best part about MacPorts: if some package (“port”) is not working properly, it’s very easy to simply fix it. One way is to just edit the corresponding “portfile” directly — try port file pidgin to see which Portfile to edit — but that will be overwritten the next time you update. The better way is to set up a local Portfile repository. To do this, edit /opt/local/etc/macports/sources.conf and add something like
file:///Users/julesverne/ports
before rsync://rsync.macports.org/release/ports. This directory should contain the Portfiles just as in the Macports tree, e.g. it should have /Users/julesverne/ports/net/pidgin/Portfile if you’re going to be changing Pidgin’s portfile.
Macports and Fink: software packaging for Mac OS X
One of the ways in which (good) Linux distributions—by which I mean Debian and Ubuntu—are better than Mac OS X is that it’s trivial to install, upgrade and uninstall packages: you just use the package management system.
On OS X, things aren’t so great. There is a good set of software that comes installed by default — Perl, Python, Bash, Zsh, CVS, Subversion, Emacs, Vim… — but at some point of time you’ll need more. (Mutt, MPlayer…)
This is where the likes of Macports and Fink come in. They package free software, somewhat analogous to what Linux distributions do, although neither comes close to any good distribution.
Fink was the first one I tried. They have a better-looking website and it says “Fink uses Debian tools like dpkg and apt-get to provide powerful binary package management.” Oh it’s like Debian, so it must be good, right? Wrong.
After trying Fink for a few months, I realised that using Debian tools does not a Debian make. As has been astutely observed, “the fanatical devotion of the Debian package maintainers makes the difference”. The packaging system — apt, dpkg — are just an offshoot of their great work, but without similar packagers, it’s no good. The Fink developers are competent and good, but their packages just aren’t satisfactory. Everything in their “stable” category is too old, and their “unstable” category really is unstable. And as far software with a GUI goes, they have only X11 apps, no Aqua ones.
Macports is more pragmatic. They have only one category, no stable v/s unstable. Everything is at the newest version that someone has managed to compile. They move fast, are more responsive to user questions, and have a more active IRC channel and mailing lists. They are also clearly less “l33t” than the Fink people, because their system is written in Tcl (really!) by people who have long since disappeared, and none of the current ones have a very good idea of what to do with the system. Nonetheless, they recognise that it is the packages that are important, not the system.
There are other bad things — (1) no binary packages, must compile from source. Improving. (2) Variants. Stupid idea, but could be worse.
Gentoo Prefix. I tried it. It’s Gentoo. It sucks.
Pkgsrc: Haven’t tried it.