Où se trouve le dernier code source de la commande man pour linux?


20

Je cherche le dernier code source de la commande man, la version de mon Linux est assez ancienne (v1.6f), mais j'ai échoué après avoir googlé un moment.

Je veux dire le dernier code source de man, pas man-pagesmais le fichier binaire en /usr/bin/manlui-même qui peut être compilé et installé.

Réponses:


19

Vous pouvez généralement interroger votre distribution pour voir d'où viennent les sources. Par exemple, je suis sur Fedora, et je peux voir que la mancommande vient du man-dbpackage:

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

Je peux alors interroger le man-dbpackage pour l'url en amont:

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

Et vous voilà, http://www.nongnu.org/man-db/ .

Vous pouvez effectuer une séquence d'étapes similaire avec les systèmes de conditionnement utilisés sur d'autres distributions.


Merci, j'ai déjà man-db après avoir posté cette question, il semble que je ne peux pas simplement compiler man à partir du code source en raison de nombreuses dépendances.
CodyChan

C'est vrai. Vous devrez d'abord résoudre toutes les dépendances. même dans ce cas, votre nouveau fichier binaire man peut ne pas vous être utile en raison des dépendances d'autres binaires plus récents.
fpmurphy

1
S'il n'y a que des dépendances linéaires, c'est facile ;-) Il y a des systèmes de programmes en ligne GNOME qui ont des dépendances circulaires. J'espère que certains développeurs OSS apprennent à créer des sources avec des dépendances linéaires documentées uniquement.
schily

1
Pour référence future, sur les distributions basées sur Debian, les commandes équivalentes sont dpkg -S /usr/bin/manetapt-cache show man-db | grep Homepage
Tim

2

Sur les distributions basées sur Debian, comme Ubuntu, vous pouvez trouver et télécharger le code source comme ci-dessous:

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

Cela mettra le code source dans votre répertoire de travail actuel.


Merci, cela m'a aidé. Ce serait bien si cette réponse pouvait être en quelque sorte plus généralisée.
Aaron Hall

-2

Linux n'est pas un système d'exploitation mais juste un noyau. Donc, en théorie, chaque distribution est libre d'utiliser ce qu'elle veut.

Même rpm n'est pas nécessairement utilisé sur chaque distribution Linux, donc la première étape consiste à savoir quelle implémentation est utilisée. Cela peut généralement être fait en utilisant stringsle binaire, puis en utilisant une chaîne significative entre guillemets comme chaîne de recherche sur Google.


1
Si rpm -qfou dpkg -Sou l'équivalent pour votre système d'empaquetage pour "" (commande -v man) "retourne le nom d'un paquet, alors cette méthode sera beaucoup plus fiable que la recherche sur Google pour les chaînes trouvées dans le binaire. Gardez à l'esprit que la plupart des distributions corrigent le logiciel en amont. Ainsi, le paquet source pour votre distribution est le seul endroit où aller pour le code source exact tel que compilé pour votre / usr / bin / man.
Stéphane Chazelas

Il existe plus d'une douzaine de systèmes de conditionnement différents, vous devez donc mentionner de nombreuses méthodes ..... mais vous avez raison: en général, de nombreuses distributions ne sont pas collaboratives et corrigent des bogues dans le logiciel ou ne signalent pas de correctifs utiles en amont.
schily
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.