不小心删除了/usr/include。我可以做什么来重新安装该目录中的文件?

不小心删除了/usr/include。我可以做什么来重新安装该目录中的文件?

我试图让 SFML 在 fedora 24 上工作,并且在此过程中我不小心删除了 usr/include 目录。有什么办法可以重新安装所有丢失的文件吗?或者我必须重新安装整个操作系统?我尝试运行sudo dnf --exclude=kernel\* reinstall \*,它似乎解决了一些问题,但我仍然丢失了最初位于该目录中的许多文件。有没有什么方法可以重新安装所有内容而不重新安装整个操作系统?

答案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

相关内容