Changes to apt config
As part of the Ubuntu port project I’ve recently been working on adding support for managing local package repositories using aptly. The major benefit of the switch to aptly is that we no longer lose old versions of packages from the Informatics repositories as soon as new versions are submitted. This allows us to follow our standard weekly develop/testing/stable cycle without fear of breaking the stable release every time we change anything in the develop release. Anyone following the daily snapshot release will have already noticed the impact of that work is that the apt sources config has changed. If you’re using the standard LCFG headers that should all just come out in the wash. Apologies for causing problems there, it wasn’t possible to come up with a seamless transition given our time constraints.
For those who want to use aptly to mirror upstream repositories (including those provided by Informatics) or want to manage their own local repositories I’ll be adding some documentation to the LCFG wiki fairly soon.
Following on from those repository changes I’ve altered some of the configuration options for the apt component. These bring it more into the LCFG way of managing packages which will be familiar to those who have used updaterpms. Here is a summary:
apt.keep_unknownis now false – Any installed packages which are not listed in the LCFG profile for the machine will now be automatically removed.
apt.keep_autois now false – Any packages which are not listed in the LCFG profile and were installed as “recommends” for another package will now be automatically removed. (With keep_unknown now being false this is set to false just for consistency).
- The default upstream repository for Ubuntu packages is now the Informatics mirror. Again, this means we can avoid the problem of packages disappearing as soon as a newer version becomes available. That often happens with the security and updates repositories. My hope is that we can soon move over to the default being an MDP mirror, the Informatics server cannot cope with providing the service for everyone once we have lots of machines.
- Loop protection – The apteryx package manager has gained a couple of new features which can be used to protect against the dreaded dpkg looping problem when errors occur. The first one to be enabled is
Apteryx::Crash-And-Burn(not as bad as it’s name implies) which causes apteryx to fail rather than loop. There is also
Apteryx::Fix-Brokenwhich will attempt to fix broken packages in the cache before applying changes. We’re still testing that option and will enable it by default if we think it helps.
The apt config now looks to be in pretty good shape. The last part of the jigsaw that I plan to work on is support for configuring apt_preferences. We have found that we definitely need the ability to specify priorities for certain packages and repositories.