如何手动强制从 RPM 包重新加载文件?

ajl*_*toz 3 fedora chroot rpm

在 Fedora 发行版升级 (27->28) 之后dnf,我尝试手动解决软件包版本之间的冲突(需要保持旧的操作系统版本正常运行;在引导时在 GRUB2 菜单中选择有效的操作系统版本)。

dnf安全检查阻止了冲突包的删除,我曾经rpm -e xxx --force这样做过。我无意中删除了 glibc,PC 立即出错。

我想避免从头开始重建我的计算机,因为:

  1. 我不太记得我几年前安装的所有应用程序(它们是由 dnf system-upgrade 自动升级的),并且
  2. /etc 中将有大量配置工作来恢复我的网络环境和机器上的服务器的自定义设置。

使用救援磁盘,我可以启动并检查硬盘。一切似乎都比较“干净”。glibc 包中的文件只是丢失了。

我无法完成chroot前根(为了运行rpm -i glibc),因为chroot尝试启动/bin/bash缺少的。

有没有办法告诉 rpm 执行其通常的工作,但将文件安装在,例如,/mnt/hard_disk/而不是/?

之后我会注意包数据库的一致性和完整性。

小智 5

chroot 可以采取一个命令来运行这可能会奏效:

chroot /mnt/hard_disk rpm -i glibc*.rpm
Run Code Online (Sandbox Code Playgroud)

此外,rpm--root选项所以这是另一种选择:

rpm -i --root /mnt/hard_disk glibc*.rpm
Run Code Online (Sandbox Code Playgroud)