誤って/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

おすすめ記事