Yesterday I had trouble upgrading my systems running Arch Linux Arm and I just want to share my experience and how I fixed it.
I run Arch Linux Arm on a Sheeva plug, a Pogoplug and a Raspbery Pi and the solution worked for all of them.
I first tried to upgrade the packages on the RPi with pacman -Syu
and got a conflict with glibc.
Code: Select all
error: failed to commit transaction (conflicting files)
glibc: /lib exists in filesystem
Errors occurred, no packages were upgraded
Searching for the fix I found that the lib directory becomes a symlink according to the following page:
https://www.archlinux.org/news/the-lib- ... a-symlink/
The solution according to https://wiki.archlinux.org/index.php/De ... iki:usrlib
Code: Select all
pacman -Syu --ignore glibc
I tried it several times with no success. There is a warning on the previuos page not to use the --force switch. This is because forcing glibc to upgrade removes the /lib directory contents making the system unusable and requiring to boot from a boot CD and using the console, which are not avail on my systems.
Digging a bit further I found a way on how to upgrade glibc and is as follows:
Open two ssh connections to the RPi logging in as root.
On the first
one install busybox (pacman -S busybox
). Busybox is a group of self-contained commands that do not depend on glibc.
Once busybox is installed issue the following commands:
On the second
connection you will force glibc to upgrade:
After doing this your /lib directory should be empty or non existent and anything you try to execute will return with an error.
Go back to the first
connection (the one running busybox) and issue the following commands:
(please use usr/lib and not /usr/lib)
At this moment the second connection should work again and your system will be updated.
I hope this helps, but I'm not responsible of any damages.