Skip to content

Instantly share code, notes, and snippets.

@vodik
Created November 4, 2012 21:26
Show Gist options
  • Save vodik/4013852 to your computer and use it in GitHub Desktop.
Save vodik/4013852 to your computer and use it in GitHub Desktop.
Upgrade path for archlinux-wiki

Archlinux Upgrade Path

Collected here is an upgrade path from approximately to a up-to-date archlinux system.

Something about this: http://pkgbuild.com/~allan/glibc-2.16.0-1-.pkg.tar.xz https://wiki.archlinux.org/index.php/DeveloperWiki:usrlib

Note: In general, it is strongly advised to avoid the --force switch as it is not safe. However, in this particular case it is safe, and suggested to avoid having to manually delete the /var/run or /var/lock symlinks.

Warning: DO NOT USE --force! This will seriously break your system. If you are coming to this guide too late and you have already used --force... there are ways to fix your system. These two do not even require a rescue disk.

Note: for installs that have not been updated to glibc-2.16, it will save you lots of time and prevent major breakage to do: pacman -U http://pkgbuild.com/~allan/glibc-2.16.0-1-.pkg.tar.xz where is replaced by i686 or x86_64 as required. Add a single "-d" if needed. The instructions below assume that this has been done.

Remember to deal with .pacnews and .pacsaves after upgrading

Timeline

The timeline of recent breaking changes detailed here:

End of initscripts support

TODO

Fontconfig 2.10.1 update - manual intervention required

The fontconfig 2.10.1 update overwrites symlinks created by the former package version. These symlinks need to be removed before the update:

rm /etc/fonts/conf.d/20-unhint-small-vera.conf  
rm /etc/fonts/conf.d/20-fix-globaladvance.conf  
rm /etc/fonts/conf.d/29-replace-bitmap-fonts.conf  
rm /etc/fonts/conf.d/30-metric-aliases.conf  
rm /etc/fonts/conf.d/30-urw-aliases.conf  
rm /etc/fonts/conf.d/40-nonlatin.conf  
rm /etc/fonts/conf.d/45-latin.conf  
rm /etc/fonts/conf.d/49-sansserif.conf  
rm /etc/fonts/conf.d/50-user.conf  
rm /etc/fonts/conf.d/51-local.conf  
rm /etc/fonts/conf.d/60-latin.conf  
rm /etc/fonts/conf.d/65-fonts-persian.conf  
rm /etc/fonts/conf.d/65-nonlatin.conf  
rm /etc/fonts/conf.d/69-unifont.conf  
rm /etc/fonts/conf.d/80-delicious.conf  
rm /etc/fonts/conf.d/90-synthetic.conf  
pacman -Sy fontconfig

Main systemwide configuration should be done by symlinks (especially for autohinting, sub-pixel and lcdfilter):

cd /etc/fonts/conf.d  
ln -s ../conf.avail/XX-foo.conf

Also check Font Configuration and Fonts.

The /lib directory becomes a symlink

All Arch Linux packages have had their files in the /lib directory moved to /usr/lib and now /lib is a symlink to usr/lib. When performing this update, pacman will likely identify a conflict in the /lib directory. In the simplest case, this is worked around by doing:

pacman -Syu --ignore glibc
pacman -Su

If either of this steps does not work (e.g. due to dependency version issues, file conflicts in /lib), refer to this guide for more detailed instructions on performing this upgrade.

filesystem upgrade - manual intervention required

As of filesystem-2012.6-2 the folders /var/run and /var/lock will be replaced by symlinks to /run and /run/lock, respectively.

On most systems this is already the case, as initscripts create the symlinks on boot. However, these symlinks are not owned by any package, which is what we are fixing with this upgrade.

If the symlinks are already in place on your system (which should be the case for most people), then you can simply perform

pacman -Syu --ignore filesystem && pacman -S filesystem --force

Otherwise, if /var/run or /var/lock are directories (e.g. if you are using systemd and never booted with initscripts) you need to delete the directories before performing the update. As these directories are used at runtime, it is recommended to shutdown any background tasks before performing

pacman -Syu --ignore filesystem && rm -rf /var/run /var/lock && \
    pacman -S filesystem

Followed by a reboot before using the system again.

Lastly, on upgrading filesystem users of kernels prior to linux-3.4 will get a warning about permissions on /sys. This is nothing to worry about, as of linux-3.4 the permissions will be 555, and this upgrade reflects this in the filesystem package.

filesystem upgrade - manual intervention required

When upgrading to filesystem-2011.12 there will be a conflict with /etc/mtab.

Install the package as follows:

pacman -S filesystem --force

The reason for the conflict is that the file used to be generated at boot and hence not owned by any package. Now it is a symlink to /proc/self/mounts owned by filesystem. This change means that initscripts no longer requires write access to the rootfs (though other packages might).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment