0

I was unable to upgrade filesystem to latest version, /lib and /lib64 exists.

And I can't just remove the link, otherwise all binaries would fail to run,

Any thought?

# pacman -S filesystem
:: filesystem is in IgnorePkg/IgnoreGroup. Install anyway? [Y/n] 
resolving dependencies...
looking for inter-conflicts...

Targets (1): filesystem-2013.01-3

Total Installed Size:   0.31 MiB
Net Upgrade Size:       0.21 MiB

Proceed with installation? [Y/n] 
(1/1) checking package integrity                          [###############################] 100%
(1/1) loading package files                               [###############################] 100%
(1/1) checking for file conflicts                         [###############################] 100%
error: failed to commit transaction (conflicting files)
filesystem: /lib exists in filesystem
filesystem: /lib64 exists in filesystem
Errors occurred, no packages were upgraded.
3
  • 5
    archlinux.org/news/… This should help.
    – schaiba
    Jan 30, 2013 at 7:12
  • 2
    Partial upgrades are unsupported...
    – jasonwryan
    Jan 30, 2013 at 7:28
  • @schaiba that link does solved the problem! thanks!
    – daisy
    Jan 30, 2013 at 9:00

2 Answers 2

1

That issue was pointed out when the symbolic link /lib was moved to another package.

Update filesystem-2013.01-1 and glibc-2.17-2 together

Due to moving of the /lib symlink from the glibc package to the more appropriate filesystem package, it is required to update glibc-2.17-2 and filesystem-2013.01-1 together. This will happen automatically when you run pacman -Syu. Remember, partial updates are not supported and never use the --force option.

A potential issue with the upgrade on x86_64 is finding conflicting files in /usr/lib64. All Arch Linux packages that had files in this directory have been updated, so update these individually first. Any AUR packages with files in this directory should be updated to install them in /usr/lib.

1

This solution is not exactly for the problem described in the question (but for this one), but it might be of some help anyway.

Usually the update failure is caused by some other packages, which need to be updated before you can update the filesystem package. So update like this:

$ sudo -s
# pacman -Syu --ignore filesystem,bash
# pacman -S bash
# pacman -Su

The first command is just to make sure that we have a root-shell open in case sudo gets broken during the update. The second command updates all packages except the filesystem package and the last one finally updates filesystem.

If you use AUR or self compiled packages: Keep in mind that also files from AUR packages or unmaintained files can cause conflicts with filesystem! Assuming the filesystem update fails with something like this:

filesystem: /bin exists in filesystem
filesystem: /sbin exists in filesystem
filesystem: /usr/sbin exists in filesystem

you should check for AUR packages or unmaintained files in /bin, /sbin and /usr/sbin using the following commands:

grep '^\(bin\|sbin\|usr/sbin\)' /var/lib/pacman/local/*/files | cut -d ":" -f 1 | uniq | cut -d "/" -f 6

lists all packages that hold files in any of these directories and

find /bin /sbin /usr/sbin -exec pacman -Qo -- {} + >/dev/null

lists all files in these directories that don't belong to any package.

Update the AUR packages and/or move the unmaintained files to /usr/local/... and the update of filesystem should work.

Thx to jasonwryan for correcting my answer.

5
  • 1
    This is a different issue (check the date of the OP) and even then the instructions you have provided are wrong. See unix.stackexchange.com/questions/79453/…
    – jasonwryan
    Jun 15, 2013 at 19:47
  • Ok I see that this is a different issue, sry for that. But how are my instructions wrong? I don't see any big difference to your solution in the the other post. Can you please explain what exactly I'm doing wrong?
    – Torben
    Jun 16, 2013 at 10:45
  • 1
    If you don't also ignore bash in the first upgrade, your initrd won't be properly regenerated and next boot will fail...
    – jasonwryan
    Jun 16, 2013 at 18:15
  • Ah ok, didn't thought of that - thx for the hint :) However, the solution above worked for me, but maybe I was just lucky. Guess it's a good idea to delete my answer here to ensure that no one gets it wrong...
    – Torben
    Jun 17, 2013 at 11:09
  • Just edit it so that it is correct--that way if someone does stumble across it, it will work for them. I removed my downvote to reflect that.
    – jasonwryan
    Jun 17, 2013 at 18:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .