MacPorts bereinigen

Bei der Nutzung von MacPorts werden nicht nur die Ports auf dem System installiert, sondern auch eine Reihe von temporären Dateien. Möchte man seine MacPorts-Installation aufräumen, so kann man dies mittels zwei Befehlen bewerkstelligen:

sudo port clean --all all
sudo port -f uninstall inactive

Der erste Befehl löscht besagte temporären Dateien, der zweite deinstalliert nicht mehr benötigte Ports. Je nach MacPorts-Nutzung kann der Vorgang längere Zeit in Anspruch nehmen.

MacPorts unter Mac OS X 10.10 betreiben

Möchte man MacPorts auf einer höheren Betriebssystemversion installieren, so wird im Normalfall der Installer für die passende Version heruntergeladen und ausgeführt. Leider gibt es noch keinen fertigen Installer für Mac OS X 10.10 alias Yosemite. In diesem Fall wird MacPorts manuell kompiliert werden. Dazu muss das Terminal geöffnet werden und folgendes eingegeben werden:

curl -O https://distfiles.macports.org/MacPorts/MacPorts-2.3.1.tar.bz2
tar xf MacPorts-2.3.1.tar.bz2
cd MacPorts-2.3.1/
./configure
make
sudo make install

Anschließend können die Ports mittels:

sudo port -v selfupdate
sudo port upgrade outdated
sudo port uninstall inactive

auf den aktuellen Stand gebracht werden. Zu beachten ist, das es durch den Beta-Status der Mac OS X Version natürlich zu Problemen kommen kann.

Ungenutze Ports unter MacPorts entfernen

Wenn man Ports unter MacPorts entfernt kann es passieren das Bibliotheken, welche von dem Port genutzt werden, im System verbleiben. Mit dem Umstieg von MacPorts auf eine SQL-Datenbank zur Haltung der Paketinformationen ist es möglich geworden diese ungenutzten Bibliotheken zu entfernen. Dazu muss im Terminal:

sudo port uninstall leaves

eingegeben werden. Anschließend werden die ungenutzten Bibliotheken entfernt und damit Plattenplatz freigegeben. Die Funktionalität der installierten Ports wird dadurch nicht beeinträchtigt.

EncFS und seine Bindungsprobleme

Nach einem Update aller Ports unter MacPorts funktioniert EncFS nicht mehr. Auf der Konsole wird dies auch ausführlich dokumentiert:

dyld: lazy symbol binding failed: Symbol not found: __ZN5boost7archive6detail17shared_ptr_helperC2Ev
  Referenced from: /opt/local/lib/libencfs.6.dylib
  Expected in: /opt/local/lib/libboost_serialization-mt.dylib

dyld: Symbol not found: __ZN5boost7archive6detail17shared_ptr_helperC2Ev
  Referenced from: /opt/local/lib/libencfs.6.dylib
  Expected in: /opt/local/lib/libboost_serialization-mt.dylib

Die Lösung für das Problem ist dabei simpel. Der Port EncFS muss noch einmal neu gebaut werden. Dafür gibt man auf der Konsole:

sudo port -ns upgrade --force encfs

ein. Anschließend kann EncFS wieder wie gewohnt genutzt werden.

Homebrew deinstallieren

Bei Homebrew handelt es sich neben MacPorts um einen Paketmanager für Mac OS X. Möchte man Homebrew wieder loswerden empfiehlt die offizielle FAQ folgendes Skript:

#!/bin/sh
# Just copy and paste the lines below (all at once, it won't work line by line!)
# MAKE SURE YOU ARE HAPPY WITH WHAT IT DOES FIRST! THERE IS NO WARRANTY!

function abort {
echo "$1"
exit 1
}

set -e

/usr/bin/which -s git || abort "brew install git first!"
test -d /usr/local/.git || abort "brew update first!"

cd `brew --prefix`
git checkout master
git ls-files -z | pbcopy
rm -rf Cellar
bin/brew prune
pbpaste | xargs -0 rm
rm -r Library/Homebrew Library/Aliases Library/Formula Library/Contributions
test -d Library/LinkedKegs && rm -r Library/LinkedKegs
rmdir -p bin Library share/man/man1 2> /dev/null
rm -rf .git
rm -rf ~/Library/Caches/Homebrew
rm -rf ~/Library/Logs/Homebrew
rm -rf /Library/Caches/Homebrew

Nach dem erfolgreichen Durchlauf des Skriptes, sollte Homebrew Geschichte sein. Dabei ist zu beachten, das dass Skript nur funktioniert, wenn Homebrew unter /usr/local installiert wurde, was allerdings der Normalfall sein sollte.