名称

mandb - 创建或更新手册页索引缓存

概述

mandb [-dqsucpt?V|-h|-V] [-C 文件] [ manpath]
 
mandb [-dqsut] [-C 文件] -f 文件名 ...

描述

mandb 用于初始化或手动更新 索引 数据库缓存。缓存包含与手册页系统当前状态相关的信息;保存在缓存中的这些信息被 man-db 工具用来提高速度和增强功能。
 
当创建或更新 索引时, mandb 会警告错误的 ROFF .so 请求,无效的手册页名称和手册页,因为 whatis 无法解析它们。
 
mandb 提供可选的,以冒号分隔的路径会覆盖内部的系统手册页层次结构搜索路径,这些路径是从 man-db 配置文件中的信息确定的。

数据库缓存

mandb 可以编译支持以下任何一种数据库类型。
 
名称 异步 文件名
Berkeley db index.bt
GNU gdbm index.db
UNIX ndbm index.(dir|pag)
 
那些提供异步更新的数据库速度更快,但代价是可能在异常中止时损坏数据。万一这种事情发生,可能要重新以 -c 选项运行 mandb 来重建数据库。

选项

-d, --debug
打印调试信息。
-q, --quiet
不显示警告。
-s, --no-straycats
不花时间查找或向数据库添加有关孤立 cat 页面的信息。
-p, --no-purge
不花时间检查删除的手册页并从数据库中清理它们。
-c, --create
默认情况下,mandb 会尝试更新任何以前创建的数据库。如果某个数据库不存在,程序会创建它。此选项强制 mandb 删除以前的数据库并重新生成数据库,并隐含了 --no-purge。在数据库损坏或将来引入新数据库存储方案时,这一选项可能用到。
-u, --user-db
只创建用户数据库,即使有创建系统数据库所需的写权限。
-t, --test
对层次结构搜索路径中的手册页执行正确性检查。使用此选项时,mandb 不会更改现有的数据库。
-f, --filename
只更新指定文件名对应的记录。此选项不作常规使用;它由 man 内部使用(以 MAN_DB_UPDATES 选项编译时),以便查找页面是否过期。它隐含了 -p,关闭了 -c-s
-C 文件--config-file=文件
使用此用户配置文件代替默认的 ~/.manpath
-?, --help
显示用法消息,然后退出。
--usage
打印简短的帮助消息并退出。
-V, --version
显示版本号,然后退出。

退出状态

0
程序成功执行。
1
用法、语法或配置文件错误。
2
操作出错。
3
子进程失败。

诊断

在构建数据库时可能会显示以下警告消息。
<文件名>: 页面(章节) 的 whatis 解析失败
从给定 <文件名> 提取 whatis 行失败。这通常是由于手册编写不当导致的。但如果出现了大量这种消息,则可能是系统包含非标准的,和 man-db whatis 解析器不兼容的手册页。请参阅 lexgrog(1) 中的 WHATIS PARSING 一节了解更多信息。
<文件名>: 是一个的无效的符号链接
<文件名>不存在,但被一个符号链接引用。通常会给出进一步的诊断信息,识别出非法链接的 <文件名>。
<文件名>: 错误的符号链接或 ROFF `.so' 请求
<文件名> 是指向不存在的文件的符号链接,或包含带有请求不存在文件的 ROFF。
<文件名>: 将忽略假的文件名
<文件名> 可能是或不是有效的手册页,但它的名称是无效的。这通常是由于手册页包含章节扩展 <x> 却被放在了手册页章节 <y>。
<文件名掩码>: 扩展冲突
通配符 <文件名掩码> 不唯一。这通常是同时存在同一手册页的压缩和非压缩版本导致的。

文件

/etc/manpath.config
man-db 配置文件。
/var/cache/man/index.(bt|db|dir|pag)
与 FHS 兼容的全局 索引 数据库缓存。
包含的数据库缓存的较早位置:
/usr/man/index.(bt|db|dir|pag)
传统的全局 索引 数据库缓存。
/var/catman/index.(bt|db|dir|pag)
替代的或 FSSTND 兼容的全局 索引 数据库缓存。

亦见

lexgrog(1), man(1), manpath(5), catman(8)
此手册页中的 WHATIS PARSING 小节现在是 lexgrog(1) 的一部分。

作者

Wilf. ([email protected]).
Fabrizio Polacco ([email protected]).
Colin Watson ([email protected]).

BUGS

https://gitlab.com/man-db/man-db/-/issues
 
https://savannah.nongnu.org/bugs/?group=man-db

Recommended readings

Pages related to mandb you should read also: