¿Dónde está el último código fuente del comando man para Linux?

20

Estoy buscando el último código fuente del comando man, la versión en mi Linux es bastante antigua (v1.6f), pero fallé después de buscar en Google por un tiempo.

Me refiero al último código fuente de man, man-pagespero no el archivo binario en /usr/bin/mansí mismo que se puede compilar e instalar.

CodyChan
fuente

Respuestas:

19

Por lo general, puede consultar su distribución para ver de dónde provienen las fuentes. Por ejemplo, estoy en Fedora, y puedo ver que el mancomando proviene del man-dbpaquete:

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

Luego puedo consultar el man-dbpaquete para la URL ascendente:

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

Y ahí estás, http://www.nongnu.org/man-db/ .

Puede realizar una secuencia de pasos similar con los sistemas de empaquetado utilizados en otras distribuciones.

larsks
fuente
Gracias, ya tengo man-db después de publicar esta pregunta, parece que no puedo simplemente compilar man desde el código fuente debido a muchas dependencias.
CodyChan
Eso es verdad. Tendrás que resolver todas las dependencias primero. incluso entonces, su nuevo binario man puede no serle útil debido a las dependencias de otros binarios más nuevos.
fpmurphy
1
Si solo hay dependencias lineales, esto es fácil ;-) Hay sistemas de programas de línea GNOME que tienen dependencias circulares. Espero que algunos desarrolladores de OSS aprendan a crear fuentes solo con dependencias lineales documentadas.
schily
1
Para referencia futura, en distribuciones basadas en Debian, los comandos equivalentes son dpkg -S /usr/bin/manyapt-cache show man-db | grep Homepage
Tim
2

En las distribuciones basadas en Debian, igual que Ubuntu, puede encontrar y descargar el código fuente como se muestra a continuación:

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

Esto pondrá el código fuente en su directorio de trabajo actual.

Yu Jiaao
fuente
Gracias, esto me ayudó. Sería bueno si esta respuesta pudiera ser de alguna manera más generalizada.
Aaron Hall
-2

Linux no es un sistema operativo sino solo un núcleo. Entonces, en teoría, cada distribución es libre de usar lo que quieran.

Incluso las rpm no se usan necesariamente en todas las distribuciones de Linux, por lo que el primer paso es descubrir qué implementación se usa. Esto normalmente se puede hacer usando stringsel binario y luego usando una cadena significativa entre comillas dobles como cadena de búsqueda en Google.

astuto
fuente
1
Si rpm -qfo dpkg -Sel equivalente de su sistema de empaque para `" $ (comando -v man) "devuelve el nombre de un paquete, entonces ese método será mucho más confiable que buscar en Google las cadenas que se encuentran en el binario. Tenga en cuenta que la mayoría de las distribuciones parchean el software desde arriba. Por lo tanto, el paquete fuente para su distribución es el único lugar para obtener el código fuente exacto compilado para su / usr / bin / man.
Stéphane Chazelas
Hay más de una docena de sistemas de empaque diferentes, por lo que necesitaría mencionar muchos métodos ... pero tiene razón: en general, muchas distribuciones no son colaborativas y pueden parchear errores en el software o no informar parches útiles. río arriba.
schily