我犯了一个错误,首先通过取消合并将 perl 非线程版本更改为线程版本,更改USE
标志以包含 ithreads,然后再次出现 perl。现在大多数依赖于 perl 的包都被破坏了。我该如何重建它们?
答案1
一种方法是使用equery
的depends
函数来获取依赖于包的事物的列表。
# equery depends perl
如果您想重建所有这些,请尝试以下操作:
# emerge -a --oneshot `equery depends perl|awk '{print " ="$1}'`
如果你安装了从 portage 树中删除的软件包,你就会遇到问题,所以提前同步和世界更新是一个好主意。
对于这种特定情况,您可能还想看看app-admin/perl-cleaner
- 它具有重建 perl 模块的特定功能。
答案2
尝试使用revdep-rebuild
(来自app-portage/gentoolkit
包装,与 相同equery
)。它是一个扫描系统是否有损坏的依赖项(例如缺少共享库)并重建具有损坏的依赖项的包的工具。与此相比,这样做的一个优点是马特的方法是在大多数情况下你不需要重建全部依赖于其他某个包的包。