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