Ubuntu Package Archive Mirror Subset Update1

Thoughts after one month

Preface

It has been a little over one month since writing the previous article. Running a mirror of a subset of the Ubuntu Archive has been good fun. I'm really enjoying it and benefiting from it.

I'll address a few points. Hopefully you will find them interesting/ useful.

Mirror Operation Order

After posting the previous article, I was asked (I paraphrase):

Do you sync the metadata, then the packages, then the metadata, or do you sync the packages, then the metadata, then the packages?

I had been sync'ing the metadata then the packages. I should have followed that with a final sync of the metadata in-case anything has changed in the meantime. I sync in this order, as opposed to pool-metadata-pool, because there are considerably fewer metadata files to compare. I've updated my script to include this step. Thank you, May, for point that out :).

Now if I see the second metadata sync yields changed files I perform a resync of everything to try to prevent anything from being incoherent.

Not a big concern

I am not operating at enterprise scale; I'm not serving thousands of VMs/ containers. The main benefit is the ability to serve my computer and a few VMs/ containers effectively, whilst having fun.

Saving bandwidth?

I'm not saving bandwidth, but I didn't expect to since I'm mirroring the whole Noble package archive which contains a load of stuff I don't use. So why bother? In this case I'm not optimizing bandwidth, I'm optimizing availability. I do enjoy the advantage of not running the risk of being rate-limited for repeatedly downloading the same packages over and over when repeatedly setting up and tearing down containers.

Off-grid

At a time where almost everything on the internet is designed to hold your attention for as long as possible, it can be refreshing to disable internet access for a while and still have access to new software.

Storage Used

As of 12:38 today my archive subset uses 303GB of disk space, according to du -cshx.

3.2G   ubuntu/dists
3.4G   ubuntu/indices
30M    ubuntu/ls-lR.gz
297G   ubuntu/pool
612K   ubuntu/project
0      ubuntu/ubuntu
303G   total

Security Updates

My apt sources is configured to pull security updates from ubuntu. This means that if the mirror from which I sync is (or I am) slow to update, I will still have access to the security updates.

Types: deb
URIs: http://10.169.240.1:801
Suites: noble noble-updates noble-backports
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

## Ubuntu security updates. Aside from URIs and Suites,
## this should mirror your choices in the previous section.
Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Round-up

It's fun. It's convenient. It's working well so far. I've removed apt-cacher-ng, and added the details for my mirror into my LXD Homelab profile.

We have likely all seen the Jurassic Park scene where Ian Malcolm (Jeff Goldblum's character) exclaims:

Your scientists were so preoccupied with whether they could, they didn’t stop to think if they should.

I wanted to know whether I "could".