如何在 CentOS 上找到缺少手册页的软件包?

Wil*_*ard 9 man centos

在 的底部man pcregrep,有一条消息:

SEE ALSO

       pcrepattern(3), pcresyntax(3), pcretest(1).
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试查看时,man pcresyntax我得到:

$ man pcresyntax
No manual entry for pcresyntax
$ man 3 pcresyntax
No entry for pcresyntax in section 3 of the manual
$ man -k pcre
pcre-config          (1)  - program to return PCRE configuration
pcregrep             (1)  - a grep with Perl-compatible regular expressions
pcre_table           (5)  - format of Postfix PCRE tables
pcretest             (1)  - a program for testing Perl-compatible regular expressions
Run Code Online (Sandbox Code Playgroud)

我试过yum info pcresyntax,甚至yum search pcresyntax一无所获。在下面贴一些意见建议,我尝试yum provides pcresyntaxyum whatprovides pcresyntax并没有得到结果。(此机器运行 CentOS 6.6。)

哪个包包含手册页pcresyntax?更重要的是,我怎样才能找出哪个包包含我缺少的手册页?

(这主要是针对缺少其他手册页中提到的手册页,而不是缺少已安装命令的手册页。换句话说,手册页与给定命令没有明显关联。)


注意:我专业地使用 Linux,我对广泛适用的答案以及特定于任何主要包管理器的答案感兴趣。 pcresyntax只是缺少手册页的一个具体示例,而不是我问题的全部内容。

目前我在工作中主要使用yum,主要是在 RHEL/CentOS 6 上,我问的是标题问题而不是“我在哪里可以找到pcresyntax手册页?” 因为我想尽可能多地了解如何查找和安装丢失的手册页,以供现在(RHEL/CentOS)和将来(Ubuntu/Debian、OpenSUSE ......?)

自从提出这个问题后,我还找到了Stack Overflow 正则表达式常见问题解答,它回答了我所有关于 PCRE 的直接问题。;)

Pan*_*dya 4

对于使用 RPM (yum) 包管理器的系统,例如(此处)CentOS,请使用yum providesyum whatprovides

provides or whatprovides
              Is used to find out which package provides some feature or
              file. Just use a specific name or a file-glob-syntax wildcards
              to list the packages available or installed that provide that
              feature or file.
Run Code Online (Sandbox Code Playgroud)

对于pcresyntax,您可以尝试:

yum whatprovides "*/pcresyntax"
Run Code Online (Sandbox Code Playgroud)

RHL 文档来看,

yum provides "*/file_name"是查找包含 file_name 的包的有用方法。

另请访问如何找到哪个 rpm 软件包提供了我要查找的文件?


对于使用 APT 作为默认包管理器的基于 Debian/Ubuntu 的系统,有apt-file(感谢@Gilles指出)命令可以完成您正在寻找的工作。

DESCRIPTION
       apt-file is a command line tool for searching files in packages for the APT package management system.
Run Code Online (Sandbox Code Playgroud)

search Search in which package a file is included. A list of all packages containing the  pattern  pattern  is returned.
Run Code Online (Sandbox Code Playgroud)

因此,请使用apt-file search来查找包含您要查找的文件的包。


换句话说,手册页由文件(通常来自 /usr/share/man)提供,并且可能重复如何找出文件属于哪个(未安装)包?