NEVER FORCE GLIBC, THESE ARE DANGEROUS INSTRUCTIONS
Hello all,
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.
$this->bbcode_second_pass_code('', '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-directory-becomes-a-symlink/
The solution according to https://wiki.archlinux.org/index.php/DeveloperWiki:usrlib is to:
$this->bbcode_second_pass_code('', 'pacman -Syu --ignore glibc
pacman -Su')
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:
$this->bbcode_second_pass_code('', 'busybox sh
cd /')
On the second connection you will force glibc to upgrade:
$this->bbcode_second_pass_code('', 'pacman --force -S glibc')
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:
$this->bbcode_second_pass_code('', 'rm -rf lib
ln -s usr/lib /lib')
(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.