실수로 /usr/include를 삭제했습니다. 해당 디렉터리에 파일을 다시 설치하려면 어떻게 해야 합니까?

실수로 /usr/include를 삭제했습니다. 해당 디렉터리에 파일을 다시 설치하려면 어떻게 해야 합니까?

Fedora 24에서 SFML을 작동시키려고 하는데, 그 과정에서 실수로 usr/include 디렉터리를 삭제했습니다. 누락된 파일을 모두 다시 설치하는 방법이 있습니까? 아니면 전체 OS를 다시 설치해야 합니까? 실행해 보았는데 sudo dnf --exclude=kernel\* reinstall \*일부 문제가 해결된 것 같았지만 원래 해당 디렉터리에 있던 많은 파일이 여전히 손실되었습니다. 전체 OS를 재설치하지 않고 모든 것을 재설치할 수 있는 방법이 있나요?

답변1

"유효성 검사" 기능을 사용하여 포함 파일이 누락된 패키지 목록을 만들 수 있습니다 rpm.

이 같은:

#!/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

누락된 파일 수를 나타내는 설명과 손상된 패키지를 다시 설치하라는 명령이 포함된 스크립트를 인쇄합니다. 예는 다음과 같습니다.

# 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

관련 정보