命令行手册

Man » mandb 手册在线 - mandb 手册页的详细在线文档

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

概要

mandb [-dqsucpt?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

不要花时间查找或将有关流浪猫的信息添加到数据库中。

-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 解析页面(sec)失败

尝试从给定的 <文件名> 中提取 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. (_)
Fabrizio Polacco (_)
Colin Watson (_)

错误

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