I’ve been a pretty happy user of MacPorts/DarwinPorts for the past couple years, and all was good. I could install all the UNIX goodness to run a rails stack and have most of the network/security apps I was used to from the Linux world. But, recently I stuck in a dynamic library situation with ImageMagick and the rmagick ruby gem that was causing me a lot of grief. So, I removed ports and my gems and started over, but still no dice.
In a perfect world, I’d have rolled back to the last working ImageMagick package and go on my happy way. Unfortunately, that doesn’t seem to be an option with MacPorts if you don’t have the old versions still compiled on your system. Of course, I didn’t because I naively decided to start from a blank slate (see above). Ultimately, I decided to try the out Fink before digging too deeply into how to fix the linking issue.
I’d used Fink for about a month when I first dipped my toe into the Mac waters, so I had some idea how the system worked. It’s based on some Debian tools like dpkg and apt-get, and offers both binary and source packages. Much like Debian, I had to immediately switch to unstable to get any sort of useful ruby install. Also, unless you can live in Candy Land and only need stable tree, I’d avoid using apt-get no matter how much your Debian/Ubuntu love makes you want to. The “fink” command line is really what you want.
And my favorite bit, is that I can rollback packages! Check it out:
jro@fireant:~$ fink dumpinfo -fallversions zsh
allversions:
b 4.2.6-1001
4.3.4-2
jro@fireant:~$ fink install zsh
.....compile compile compile.. this is unstable after all.....
jro@fireant:~$ fink dumpinfo -fallversions zsh
allversions:
b 4.2.6-1001
bi 4.3.4-2
jro@fireant:~$ fink install zsh-4.2.6-1001
The following package will be installed or updated:
zsh
/sw/bin/apt-get-lockwait -q --ignore-breakage --download-only install zsh=4.2.6-1001
Reading Package Lists...
Building Dependency Tree...
The following packages will be DOWNGRADED
zsh
0 packages upgraded, 0 newly installed, 1 downgraded, 0 to remove and 0 not upgraded.
Need to get 2087kB of archives. After unpacking 1524kB will be freed.
Do you want to continue? [Y/n]
......
...... downgrade...install..yay!....
......
jro@fireant:~$ fink dumpinfo -fallversions zsh
allversions:
bi 4.2.6-1001
b 4.3.4-2
jro@fireant:~$ fink install zsh-4.3.4-2
The following package will be installed or updated:
zsh
Reading buildlock packages...
/sw/bin/dpkg-lockwait -i /sw/fink/dists/unstable/main/binary-darwin-i386/shells/zsh_4.3.4-2_darwin-i386.deb
(Reading database ... 30667 files and directories currently installed.)
Preparing to replace zsh 4.2.6-1001 (using .../zsh_4.3.4-2_darwin-i386.deb) ...
Unpacking replacement zsh ...
Setting up zsh (4.3.4-2) ...
jro@fireant:~$ fink dumpinfo -fallversions zsh
allversions:
b 4.2.6-1001
bi 4.3.4-2