blog.alexanderkoch.net Nerdy news from /home/alex

25Okt 090

Pacman auf Speed: pacman-cage

Die Idee, die Pacman-Datenbank auf eine eigene kleine (evtl. virtuelle) Partition zu legen, liegt nicht sonderlich fern. Dass das aber mit einer simplen Lösung aus ext2 und einem Loopback-Volume einen derartigen Speedup bewirkt, hätte zumindest ich nicht gedacht:

$ time pacman -Ss kernel >/dev/null
real    0m0.019s
user    0m0.003s
sys    0m0.010s

Damit wäre dann der einzige Nachteil, den ich an Pacman gegenüber apt und Co. gesehen hätte, Geschichte :)
Wer Interesse daran hat, es auszuprobieren: pacman-cage.sh (setup script, leicht modifiziert übernommen aus diesem Thread). Zur Einbindung der Datenbank beim Systemstart, sowie fsck und Backup dient Folgendes in der /etc/rc.local:

. /etc/rc.conf
. /etc/rc.d/functions
 
# check and mount pacman db
stat_busy "Mounting pacman database"
/sbin/e2fsck -p /var/lib/pacman-X.db >/dev/null
if [ $? -gt 1 ]; then
    stat_fail
    echo
    echo "WARNING: PACMAN DB FILESYSTEM CHECK FAILED, NOT MOUNTED"
    echo
else
    mount /var/lib/pacman
    if [ $? -gt 0 ]; then
        stat_fail
        echo
        echo "WARNING: MOUNTING PACMAN DATABASE FAILED"
        echo
    else
        stat_done
        stat_busy "Backing up pacman database"
        rsync -Caxq --delete-after --exclude "lost+found/" /var/lib/pacman/local  /var/lib/pacman.bak/
        if [ $? -gt 0 ]; then
            stat_fail
        else
            stat_done
        fi
    fi
fi

Außerdem muss die Partition noch in die /etc/fstab eingetragen werden:

/var/lib/pacman-X.db   /var/lib/pacman   ext2   defaults,loop,noauto,noatime   0 0
22Okt 090

Pacgraph

Pacgraph ist ein Python-Script, das die aktuell installierten Pakete inkl. ihrer Abhängigkeiten und Größe visualisiert. Nicht nur eine nette Spielerei, sondern auch sehr gut geeignet, um Bloat aufzufinden!

Mein Notebook:

pacgraphUnd zum Vergleich mein eifriger lightweight-Homeserver in Form einer S100 Set-top-box:

pacgraph-andromeda