Não é possível atualizar o pacote “filesystem” no Arch

0

Não consegui atualizar o sistema de arquivos para a versão mais recente, /lib e /lib64 existe.

E não posso simplesmente remover o link, caso contrário, todos os binários não seriam executados,

Qualquer pensamento?

# 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.
    
por daisy 30.01.2013 / 08:03

2 respostas

1

Esse problema foi apontado quando o link simbólico /lib foi movido para outro pacote.

Atualize o sistema de arquivos-2013.01-1 e glibc-2.17-2 juntos

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.

    
por 29.05.2013 / 21:29
1

Esta solução não é exatamente para o problema descrito na pergunta ( mas para este ), mas pode ser de alguma ajuda de qualquer maneira.

Normalmente, a falha na atualização é causada por alguns outros pacotes, que precisam ser atualizados antes que você possa atualizar o pacote filesystem . Então atualize assim:

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

O primeiro comando é apenas para garantir que tenhamos um shell de root aberto no caso de sudo ser quebrado durante a atualização. O segundo comando atualiza todos os pacotes, exceto o pacote filesystem , e o último finalmente atualiza filesystem .

Se você usa pacotes AUR ou auto-compilados: Lembre-se de que também arquivos de pacotes AUR ou arquivos não-mantidos podem causar conflitos com filesystem ! Supondo que a filesystem atualização falhe com algo assim:

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

você deve verificar os pacotes AUR ou os arquivos não mantidos em /bin , /sbin e /usr/sbin usando os seguintes comandos:

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

lista todos os pacotes que contêm arquivos em qualquer um desses diretórios e

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

lista todos os arquivos nesses diretórios que não pertencem a nenhum pacote.

Atualize os pacotes AUR e / ou mova os arquivos não-mantidos para / usr / local / ... e a atualização de filesystem deve funcionar.

Thx para jasonwryan por corrigir minha resposta.

    
por 14.06.2013 / 13:32

Tags