Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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.
share|improve this question
5  
archlinux.org/news/… This should help. –  schaiba Jan 30 '13 at 7:12
1  
Partial upgrades are unsupported... –  jasonwryan Jan 30 '13 at 7:28
    
@schaiba that link does solved the problem! thanks! –  warl0ck Jan 30 '13 at 9:00
add comment

2 Answers

up vote 1 down vote accepted

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.

share|improve this answer
add comment

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.

share|improve this answer
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 '13 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 '13 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 '13 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 '13 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 '13 at 18:21
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.