停电后,我的CentOS服务器开始出现许多系统命令被破坏的问题。 因此,我一直在收到有关rm或mv等关键命令的消息:“无法执行二进制文件”。 使用Linux救援光盘,我设法取代了一些文件,让我回到主要工作状态,但我仍然遇到较不重要的命令,如sed或tar的问题。 而不是find并replace每个可能被破坏的文件,我想继续前进,完全replace或修复这些系统命令为默认状态。 我已经尝试从CentOS光盘运行升级过程,但是这只会导致我的initrd文件出现问题,并且不能纠正我的系统命令的任何问题。 任何人都可以build议在哪里可以find一个包,重新安装这些文件,而不必重新安装CentOS?
正如@Ency所示:
rpm --verify --all
会告诉你所有的改变。
不过,我build议安装“yum-verify”,或者如果它尚未安装,然后使用如下所示:
yum verify --verify-filenames='*bin/*'
这与“rpm –verify”非常相似,但是可以将其限制到某些目录,并且默认不会显示configuration文件更改。
输出并不真正告诉你什么是包,所以你需要使用:
rpm -qf /full/path/to/file
要么
yum provides /full/path/to/file
看看这个文件属于哪个软件包
那么你可以使用:
yum reinstall packagename
即使它是相同的版本,也要重新安装RPM。
不过,我build议备份所需的文件( /home , /etc ,`/ var /等等),并重新安装所有的东西。 从你所描述的,我怀疑你不会发现隐藏在系统上的所有问题。