Excluído / usr / include acidentalmente. O que posso fazer para reinstalar os arquivos que estavam nesse diretório?

4

Eu estava tentando fazer o SFML funcionar no fedora 24, e acidentalmente deletei o diretório usr / include no processo. Existe alguma maneira de reinstalar todos os arquivos ausentes? Ou eu tenho que reinstalar todo o sistema operacional? Eu tentei executar sudo dnf --exclude=kernel\* reinstall \* e parecia corrigir alguns dos problemas, mas ainda estou faltando muitos dos arquivos que estavam nesse diretório originalmente. Existe alguma maneira de reinstalar tudo sem reinstalar todo o sistema operacional?

    
por JRud52 20.08.2016 / 03:20

1 resposta

2

Você pode fazer uma lista dos pacotes cujos arquivos include estão ausentes usando o recurso "verify" de rpm .

Algo parecido com isto:

#!/bin/sh
rpm -qa|while read name
do
    include=$(rpm -ql "$name" |grep -E '^/usr/include/' |wc -l)
    [ $include = 0 ] && continue
    missing=$(rpm -V "$name" |grep -E '^missing[[:space:]]+/usr/include/' |wc -l)
    [ $missing = 0 ] && continue
    printf '# missing %d of %d %s\n' $include $missing $name
    printf "sudo dnf -y reinstall %s\n" $name
done

Imprime um script com comentários indicando o número de arquivos ausentes, bem como comandos para reinstalar os pacotes quebrados. Aqui está um exemplo:

# missing 1 of 1 libXcomposite-devel-0.4.4-7.fc23.x86_64
sudo dnf -y reinstall libXcomposite-devel-0.4.4-7.fc23.x86_64
    
por 21.08.2016 / 17:54