Onde está o código-fonte mais recente do comando man para linux?

20

Estou procurando o código-fonte mais recente do comando man, a versão no meu Linux é bastante antiga (v1.6f), mas falhei depois de pesquisar um pouco.

Refiro-me ao código-fonte mais recente man, não man-pageso arquivo binário em /usr/bin/mansi, que pode ser compilado e instalado.

CodyChan
fonte

Respostas:

19

Geralmente, você pode consultar sua distribuição para ver de onde vêm as fontes. Por exemplo, estou no Fedora e posso ver que o mancomando vem do man-dbpacote:

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

Posso então consultar o man-dbpacote para o URL upstream:

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

E aí está você, http://www.nongnu.org/man-db/ .

Você pode executar uma sequência semelhante de etapas com os sistemas de empacotamento usados ​​em outras distribuições.

larsks
fonte
Obrigado, eu já tenho o man-db depois de postar esta pergunta, parece que não posso apenas compilar o homem a partir do código-fonte devido a muitas dependências.
CodyChan #
Isso é verdade. Você precisará resolver todas as dependências primeiro. mesmo assim, seu novo binário man pode não ser útil para você devido a dependências de outros binários mais recentes.
Fpmurphy 01/09/2015
11
Se houver apenas dependências lineares, isso é fácil ;-) Existem sistemas da linha GNOME que possuem dependências circulares. Espero que alguns desenvolvedores de OSS aprendam a criar fontes apenas com dependências lineares documentadas.
schily
11
Para referência futura, em distribuições baseadas no Debian, os comandos equivalentes são dpkg -S /usr/bin/maneapt-cache show man-db | grep Homepage
Tim
2

Nas distribuições baseadas no Debian, assim como no Ubuntu, você pode encontrar e baixar o código-fonte como abaixo:

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

Isso colocará o código fonte no seu diretório de trabalho atual.

Yu Jiaao
fonte
Obrigado, isso me ajudou. Seria bom se essa resposta pudesse ser de algum modo mais generalizada.
Aaron Hall
-2

Linux não é um sistema operacional, mas apenas um kernel. Portanto, em teoria, toda distribuição é livre para usar o que quiser.

Mesmo o rpm não é necessariamente usado em todas as distribuições Linux, portanto, o primeiro passo é descobrir qual implementação é usada. Isso geralmente pode ser feito usando stringso binário e, em seguida, use uma string significativa entre aspas duplas como string de pesquisa no Google.

esperto
fonte
11
Se rpm -qfou dpkg -So equivalente para o seu sistema de empacotamento para "" $ (command -v man) "retornar o nome de um pacote, esse método será muito mais confiável do que pesquisar por strings encontradas no binário. Lembre-se de que a maioria das distribuições corrige o software do upstream. Portanto, o pacote fonte para a sua distribuição é o único local a seguir para o código fonte exato, compilado pelo seu / usr / bin / man.
Stéphane Chazelas
Existem mais de uma dúzia de sistemas de empacotamento diferentes, portanto, é necessário mencionar muitos métodos ... mas você está correto: Em geral, muitas distribuições não são colaborativas e corrigem bugs no software ou não relatam patches úteis a montante.
schily 01/09/2015