|Update Issue With Filesystem Package
Date: June 06, 2013, 01:00:22 AM
Some of you may be finding that you're running into an issue when trying to update the filesystem package. The reason for the conflict is that the contents of the /bin, /sbin and /usr/sbin directories are being merged into /usr/bin and the directories replaced with symlinks. If these directories contain non-standard packages - and /sbin and /usr/sbin probably do - the package manager doesn't move all of their contents and sees the still existent directories as a conflict since it can't replace them with symlinks.
The fix is relatively simple, but some users likely require some guidance. In short, you need to update everything but the filesystem package, move the contents of /sbin and /usr/sbin to /usr/bin, then remove the /sbin and /usr/sbin directories before finally performing the update on the filesystem package.
You may find that Apper won't find all the packages you need up front. So, first, using pacman, attempt to perform a full system upgrade:
You should end up with the following error messages:
filesystem: /bin exists in filesystem
filesystem: /sbin exists in filesystem
filesystem: /usr/sbin exists in filesystem
Leave this terminal window open (if you don't, you won;t be able to open another one after /bin is removed from your path).
Now open Apper and select "Check for updates", then deselect the filesystem package. Perform the update.
When the update is complete, return to your terminal window and change directory to /sbin. Run the following command:
tar cpf - . | tar xpf - -C ../usr/bin
Move the /sbin directory to something else:
mv /sbin /sbin.old
Now change directory to /usr/sbin and run the following:
tar cpf - . | tar xpf - -C ../bin
Move the /usr/sbin directory to something else:
mv /usr/sbin /usr/sbin.old
Now go back to Apper and install the filesystem package update. It should now complete successfully and leave you with 3 symlinks - /bin, /sbin and /usr/sbin.
Remove the old directories you left behind:
rm -rf /sbin.old /usr/sbin.old
Before rebooting, please make sure that the /bin, /sbin and /usr/sbin symbolic links are present. If not, do the following:
ln -sf usr/bin /sbin
ln -sf bin /usr/sbin
ln -sf usr/bin /bin
You're not likely to have to create the /bin symlink (although do check to make sure it's there), but the sbin symlinks may or may not be created properly, so check those ones specifically. If, by some chance, you forget to check for these and they weren't created properly, you won't be able to reboot. To fix that issue, you'll have to boot up using the live media, mount your root partition and create them.
And you're done.
Note: If you find you have other conflicts that 1) pacman can't handle; and 2) are too complicated to address using Apper, try using /etc/pacman.conf to remove packages from the update, then use pacman to perform the update. There is a config option in /etc/pacman.conf - IgnorePkg - that lets you remove packages from the update list when using pacman. Apper has this functionality, but doesn;t handle conflicts as well as pacman, so Apper may just end up frustrating you. For example, recently I had to update filesystem after a new install, and pacman couldn;t deal with conflicts related to filesystem and erlang-unixodbc, but was able to resolve other conflicts with bluez without any issue. Apper allowed me to remove filesystem and erlang-unixodbc from the update list, but couldn't resolve the conflicts with bluez. So neither option would work. What I ended up doing was adding filesystem and erlang-unixodbc to the IgnorePkg line in /etc/pacman.conf, then performed the update using "pacman -Syyu" which properly handled the bluez conflict. After completing the update, I removed the packages from the IgnorePkg line in pacman.conf and followed the process described above (I ultimately had to remove the erlang-unixodbc package). If you go this route, remember to uncomment the IgnorePkg line before using it. If all else fails, you are welcome to contact me and describe your situation. I'll do what I can to help.
Rating: This article has not been rated yet.