处理 man-db 的触发器

sla*_*tty 19 12.04

运行 sudo aptitude upgrade 时,控制台在几乎每次软件包升级后都会冻结很长时间,并显示一条消息“正在处理 man-db 的触发器...”。可能是什么问题,我该如何解决?

Ubuntu 版本:12.04(Server 和 Xubuntu)

提前致谢。


更新:在我的进一步测试中,这个问题似乎与包 autofs 有关。删除 autofs 解决了这些问题。不知道为什么。然后,我必须对我的文件系统使用软链接而不是 autofs 以避免此问题(以及此处发布的其他两个问题)。

Zol*_*tan 25

Processing triggers for man-db仅当文件存在时才执行该步骤/var/lib/man-db/auto-update。这是一个空文件,其唯一目的是控制此行为,因此可以安全地删除它以禁用这个耗时且可能不必要的过程。

我个人在我的所有系统上禁用了此触发器。虽然 man-db 缓存应该增强手册页系统的速度和功能,但在禁用触发器后我没有遇到任何明显的性能下降或功能问题。

  • 哦天哪,为什么这不是公认的答案?我花了多少年的时间等待安装软件包后 man-db 触发器的更新? (5认同)
  • @Tom 这个答案在选票方面表现不佳的原因是,我在问题被提出 9 年后发布了它,而且在它已经收到了几个此时已经获得很多选票的答案之后。但我很高兴至少有一个人在页面底部偶然发现了这个答案,并发现它很有用。:) (5认同)

小智 11

可能对某人有帮助:我经常在我们的 CI 上遇到这个问题。

只需执行以下操作:

sudo apt-get remove -y --purge man-db
Run Code Online (Sandbox Code Playgroud)

该命令完全删除了 man-db 包,在我们的 CI 案例中,无论如何它完全没用。

  • 嗯,在 ubuntu 上,这想要删除 ubuntu-standard,这似乎是一个坏主意 (6认同)
  • @Kevin这就是为什么你不应该使用 -y 标志。我不明白为什么这么多人用它。 (3认同)

小智 9

mandb 索引可能已损坏。

检查索引并重新创建它

sudo mandb -t
rm -rf /var/cache/man
sudo mandb -c
Run Code Online (Sandbox Code Playgroud)


小智 6

我有类似的东西只是在Windows子系统安装Ubuntu 18.04 Linux和运行后updateupgrade:它得到停留在processing triggers for man-db (2.8.3-2)。而且后来,在运行之后

sudo apt install python3-pip
Run Code Online (Sandbox Code Playgroud)

我的解决方案:我只是等待。在第二种情况下甚至大约 15 分钟。我不知道这是否正常,因为我对 Linux 很陌生。但这让人们在遇到同样的问题时只会知道另一种体验。