MANDB(8) | 手册分页显示工具 | MANDB(8) |
名称
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/man_db.conf
- 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. (G.Wilford@ee.surrey.ac.uk). Fabrizio Polacco (fpolacco@debian.org). Colin Watson (cjwatson@debian.org).
BUGS
https://gitlab.com/man-db/man-db/-/issues
https://savannah.nongnu.org/bugs/?group=man-db
2024-08-29 | 2.13.0 |