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 .pacnew
s and .pacsave
s after upgrading
The timeline of recent breaking changes detailed here:
- End of initscripts support 2012-11-04
- Fontconfig 2.10.1 update 2012-09-06
- The /lib directory becomes a symlink 2012-07-14
- filesystem upgrade 2012-06-07
- filesystem upgrade 2011-12-20
TODO
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.
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.
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.
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).