Wie kann ich herausfinden, welches Paket eine fehlende Manpage unter CentOS enthält?

7

Am Ende von man pcregrepbefindet sich eine Meldung:

SEE ALSO

       pcrepattern(3), pcresyntax(3), pcretest(1).

Wenn ich jedoch versuche zu sehen, man pcresyntaxerhalte ich:

$ 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

Ich habe es versucht yum info pcresyntaxund sogar yum search pcresyntaxnichts bekommen. Auf Vorschlag einiger Kommentare, die unten veröffentlicht wurden, habe ich versucht yum provides pcresyntaxund yum whatprovides pcresyntaxkeine Ergebnisse erzielt. (In dieser Box wird CentOS 6.6 ausgeführt.)

Welches Paket enthält die Manpage pcresyntax? Was noch wichtiger ist: Wie kann ich herausfinden, welches Paket eine fehlende Manpage enthält?

(Dies gilt hauptsächlich für fehlende Manpages, die in anderen Manpages erwähnt werden, und nicht für fehlende Manpages für einen installierten Befehl. Mit anderen Worten, Manpages, die offensichtlich keinem bestimmten Befehl zugeordnet sind.)


HINWEIS: Ich arbeite professionell mit Linux und bin an allgemein anwendbaren Antworten sowie an Antworten interessiert, die für einen der wichtigsten Paketmanager spezifisch sind. pcresyntaxist nur ein konkretes Beispiel für eine fehlende Manpage, nicht das Ende meiner Frage.

Derzeit arbeite ich hauptsächlich mit yumRHEL / CentOS 6 und habe die Titelfrage gestellt, anstatt "Wo finde ich die pcresyntaxManpage?". weil ich so viel wie möglich darüber wissen möchte, wie man fehlende Manpages findet und installiert, für den professionellen Gebrauch sowohl jetzt (RHEL / CentOS) als auch in Zukunft (Ubuntu / Debian, OpenSUSE, ...?)

Seit ich diese Frage gestellt habe, habe ich auch die häufig gestellten Fragen zu Stack Overflow Regular Expressions gefunden, die alle meine unmittelbaren Fragen zu PCRE beantwortet haben. ;)

Platzhalter
quelle
Beachten Sie, dass dies kein Duplikat von unix.stackexchange.com/q/79028/135943 ist , da (a) ich CentOS 6.6 verwende und vor allem, weil (b) ich nicht einmal weiß, welches Paket das enthalten würde entsprechende Manpage; das muss ich herausfinden.
Wildcard
Und hast du es versucht man 3 pcresyntax?
Faheem Mitha
@FaheemMitha, ich habe. Gleiches Ergebnis. In meinem ersten Entwurf war dieser Kommentar Teil meiner Frage, aber da ich frage, wie man fischt, anstatt nach einem Fisch zu fragen , habe ich beschlossen, dass er in Kommentare gehört, da er für zukünftige Leser nicht direkt für die allgemeine Frage relevant ist.
Wildcard
@Wildcard Welche Tools für eine Distribution verfügbar sind, beeinflusst stark jede Antwort, die dies haben könnte. Sie sollten die Verteilung oder zumindest das verwendete Paketverwaltungstool angeben. Oder die Antwort lautet: "Finden Sie heraus, welches Tool nach Paketdatenbanken für Dateien suchen kann, und verwenden Sie diese."
Muru
@Wildcard Alle relevanten Informationen, einschließlich der von Ihnen verwendeten Distribution und der Befehle, mit denen Sie versucht haben, Ihr Problem zu lösen, gehören zur Frage. Zumindest meiner Meinung nach.
Faheem Mitha

Antworten:

4

Verwenden Sie für das System, das den RPM-Paketmanager (yum) verwendet, z. B. (hier) CentOS, yum providesoder yum 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.

Für pcresyntaxkönnen Sie versuchen:

yum whatprovides "*/pcresyntax"

Aus der RHL-Dokumentation ,

yum provides "*/file_name" ist eine nützliche Methode, um die Pakete zu finden, die den Dateinamen enthalten.

Besuchen Sie auch Wie finde ich heraus, welches RPM-Paket eine gesuchte Datei enthält?


Für Debian / Ubuntu-basierte Systeme, die APT als Standard-Paketmanager verwenden, gibt es apt-file(danke @Gilles für den Hinweis) einen Befehl, der einen Job erledigen kann, den Sie suchen.

DESCRIPTION
       apt-file is a command line tool for searching files in packages for the APT package management system.

search Search in which package a file is included. A list of all packages containing the  pattern  pattern  is returned.

Verwenden Sie also apt-file search, um ein Paket zu finden, das eine gesuchte Datei enthält.


Mit anderen Worten, die Manpage wird durch Dateien (normalerweise aus / usr / share / man) und mögliche Duplikate von Wie kann man herausfinden, zu welchem ​​(nicht installierten) Paket eine Datei gehört? !

Pandya
quelle
3

Ich fand es wie:

yum whatprovides '*/man3/pcresyntax*'

was auf meinem CentOS 6.5-Computer sagt, dass es in pcre-devel-7.8-6.el6 ist

Eric Renouf
quelle
Auf Fedora: dnf whatprovides '*man3/pcresyntax*'... oder großzügiger: dnf whatprovides '*man?/pcresyntax*'... das dauert volle 1m25s. (Ich fand schließlich heraus, dass getpeereid (3) von libbsd-develyay kommt!)
David Tonhofer