- Distro does not make assumptions about what I want
- Packages are up to date
- Great community
My biggest beef with this rolling release distro is when I need a package, but I'm not ready to upgrade my entire machine. Often, the package dependencies require me to upgrade other critical packages. I can attempt to install an older version, but the packages disappear off the public repos. Sure, you can use ARM or downgrader, but its more trouble and doesn't always work.
Now, upgrading a package is not a huge deal, but things break and I don't have time to fix them every day.
My solution? A simple bash script that downloads the entire repo so that I always have a copy of the files. I put them on a private FTP server and configure pacman.conf to use it. That way, when I'm ready to upgrade, I just sync my private repo with the mirrors and I'm good to go.
Before you bash me for downloading / killing the public mirrors, keep these things in mind:
- I only download what's changed since the last sync
- I use lftp's mirror option to perform the sync
- I limit my bandwidth using trickle
Another cool feature is that I use hardlinks to keep a permanent archive each time I sync. If there is trouble with my latest sync, I can just roll back to the previous one.
I know this isn't rocket science, but it solves a big problem in my world. Here is the code:
#!/bin/sh # This script expects two things: # a symlink called archlinux pointing to an existing repo folder # To get started, you can just create an empty folder and link it: # mkdir archlinux-repo-tmp # ln -s archlinux-repo-tmp archlinux # ./syncrepo DAY=`date +"%m-%d-%Y"` LINK=`readlink archlinux` echo $DAY echo $LINK cp -al $LINK archlinux-$DAY cat > lftprc <<EOF mirror --loop -ccn -P5 -X "*.iso" YOUR-MIRROR-HERE archlinux-$DAY EOF trickle -sd 600 lftp -f lftprc rm archlinux ln -s archlinux-$DAY archlinux