Tunneling Rsync through SSH for ABS updates

As I told on my previous post I’m currently using Archlinux here at work. Archlinux has beside it’s ’normal‘ package management system pacman (similar to apt-get) a ports-like application-repository called the ‚Arch Build System‘ (ABS).

In order to use the ABS software repository and to be able to install software from it, you need to sync the whole package tree to your local disk. This doesn’t contain the full packages with all tarballs and stuff – it’s only some Meta-information. The necessary files needed for a package installation will be downloaded on request when installing the software.

Updating the ABS-tree is being done by rsync. The problem is that I don’t have the possibility to connect to the internet by something other the http(s) and ssh, but I haven’t found a solution yet to tell abs to use rsync over ssh for this step.

So my workaround for this is the following:

– Tunnel the rsync requests to the Arch servers via ssh (this needs root priviledges)

ssh -l johndoe -L 873:rsync.archlinux.org:873 yoursshserver.cooldomain.com

– Edit /etc/abs.conf and replace the value for SYNCSERVER with ‚localhost‘

– Run abs

It’s working very fine, but I have to admit that you need a ssh-server to connect to in the internet or at least a linux-box (of course any other ssh-able server will fit too) accesible via dyndns.