我不小心删除了所有 RPM 数据(我删除了/var/lib/rpm/*
而不是/var/lib/rpm/__*
),然后运行了rpm --rebuilddb
.现在,当我尝试运行时,yum update
我得到:
Could not parse metalink https://mirrors.fedoraproject.org
/metalink?repo=fedora-$releasever&arch=i386 error was
No repomd file
Error: File /var/cache/yum/i386/$releasever/fedora/metalink.xml does
not exist
我发现/var/cache/yum/i386
上次操作后我什至没有该文件夹了。我下载了 Fedora 18 的 fedora-release RPM 并在本地安装并重建了我的 yum 缓存(我就是这样做的吗?):
rpm -Uvh --replacefiles --replacepkgs /$MYPATH_TO_Fedorareles/fedorarelease-18-0.8.noarch.rpm
这创建了一个新的 rpmdb,其中仅安装了一个软件包:fedora-release
。由于 yum 认为这是唯一安装的软件包,因此如果我尝试安装任何东西,它会解决依赖关系并将许多我实际上已经安装的软件包排队等待安装。
如何让 yum 知道所有已安装的软件包?我不想重新安装任何东西,也不想下载 500MB 的 RPM。
答案1
不幸的是,您必须重新填充 rpmdb,并且只有在您拥有 RPM 本身的情况下才能执行此操作。您可以在执行软件包安装/更新/擦除时传递--justdb
给,但您将需要实际可用的软件包。rpm