Wo ist der neueste Quellcode des Befehls man für Linux?

20

Ich suche nach dem neuesten Quellcode des Befehls man, die Version in meinem Linux ist ziemlich alt (v1.6f), aber ich habe nach einer Weile gegoogelt und bin gescheitert.

Ich meine den neuesten Quellcode man, nicht man-pagesaber die Binärdatei an /usr/bin/mansich, die kompiliert und installiert werden kann.

CodyChan
quelle

Antworten:

19

Normalerweise können Sie Ihre Distribution abfragen, um zu sehen, woher die Quellen stammen. Ich bin zum Beispiel auf Fedora und sehe, dass der manBefehl aus dem man-dbPaket stammt:

$ rpm -qf /usr/bin/man
man-db-2.6.7.1-16.fc21.x86_64

Ich kann dann das man-dbPaket nach der Upstream-URL abfragen :

$ rpm -qi man-db | grep -i url
URL         : http://www.nongnu.org/man-db/

Und da sind Sie, http://www.nongnu.org/man-db/ .

Sie können eine ähnliche Abfolge von Schritten mit den Verpackungssystemen ausführen, die in anderen Distributionen verwendet werden.

larsks
quelle
Danke, ich habe bereits man-db, nachdem ich diese Frage gestellt habe. Es scheint, dass ich man aufgrund vieler Abhängigkeiten nicht einfach aus dem Quellcode kompilieren kann.
CodyChan
Das ist wahr. Sie müssen zuerst alle Abhängigkeiten auflösen. Selbst dann ist Ihre neue Man-Binärdatei möglicherweise aufgrund von Abhängigkeiten von anderen neueren Binärdateien für Sie nicht nützlich.
fpmurphy
1
Wenn es nur lineare Abhängigkeiten gibt, ist das einfach ;-) Es gibt Programmsysteme der Linie GNOME, die zirkuläre Abhängigkeiten haben. Ich hoffe, dass einige OSS-Entwickler lernen, nur Quellen mit dokumentierten linearen Abhängigkeiten zu erstellen.
Schily
1
Für zukünftige Referenz sind auf Debian-basierten Distributionen die entsprechenden Befehle dpkg -S /usr/bin/manundapt-cache show man-db | grep Homepage
Tim
2

Auf Debian-basierten Distributionen können Sie wie in Ubuntu folgenden Quellcode finden und herunterladen:

$ which man
/usr/bin/man
$ dpkg --search /usr/bin/man
man-db: /usr/bin/man
$ apt-get source man-db

Dadurch wird der Quellcode in Ihr aktuelles Arbeitsverzeichnis gestellt.

Yu Jiaao
quelle
Danke, das hat mir geholfen. Wäre schön, wenn diese Antwort irgendwie verallgemeinert werden könnte.
Aaron Hall
-2

Linux ist kein Betriebssystem, sondern nur ein Kernel. Theoretisch kann also jede Distribution verwenden, was sie will.

Selbst rpm wird nicht notwendigerweise auf jeder Linux-Distribution verwendet. Der erste Schritt besteht darin, herauszufinden, welche Implementierung verwendet wird. Dies kann in der Regel mithilfe stringsder Binärdatei und einer signifikanten Zeichenfolge in doppelten Anführungszeichen als Suchzeichenfolge in Google erfolgen.

schily
quelle
1
Wenn rpm -qfoder dpkg -Soder die Entsprechung für Ihr Verpackungssystem für "$ (Befehl -v man)" den Namen eines Pakets zurückgibt, ist diese Methode wesentlich zuverlässiger als das Auffinden von Zeichenfolgen in der Binärdatei. Bedenken Sie, dass die meisten Distributionen die Software von der Originalautorität aus patchen. Daher ist das Quellpaket für Ihre Distribution der einzige Ort, an dem Sie den genauen Quellcode abrufen können, der für Ihr / usr / bin / man kompiliert wurde.
Stéphane Chazelas
Es gibt mehr als ein Dutzend verschiedene Verpackungssysteme, daher müssten Sie viele Methoden erwähnen ... aber Sie haben Recht: Im Allgemeinen sind viele Distributionen nicht kollaborativ und reparieren entweder Fehler in der Software oder melden keine nützlichen Patches stromaufwärts.
Schily