Onde é o melhor lugar para encontrar fontes de ferramentas padrão de linha de comando do Linux?

10

Em: Eu gosto de aprender lendo fontes. Mas é cansativo pesquisá-los através da Internet em muitos sites de projetos diferentes. Adoraria ver o repo central navegável com fontes de muitos aplicativos em um só lugar.

  • Quando alguém quer encontrar documentação de alguma ferramenta Linux, melhor o lugar é: man toolname .
  • Quando eu quiser navegar nas fontes do Linux "on-demand", posso sempre pular para : Referência Cruzada do Linux .
  • Quando quero encontrar o pessoal mais comum, posso encontrar todas as fontes Coreutils .
  • Quando eu quero verificar como construir algo, posso (por exemplo) saltar em link , verifique se é pkgbuild.

Existe algum repositório que contém fontes da maioria das ferramentas em um só lugar? - da mesma forma que man contém documentação ou Fontes de referência de referência cruzada do Linux .

Quero dizer algo para "rápido" "sob demanda", verificando como as coisas são implementadas. (Sim, eu sei google - > mas estou cansado de rotina: 1. pesquisando site do projeto 2. navegando repo ou ainda pior - > verificar se é repo 3. excluindo quando terminar)

OBSERVAÇÃO:

Eu enfatizei que gostaria de verificar as ferramentas: rápido, rápido e sob demanda.

Isso significa: não quero instalar o aplicativo inteiro com suas fontes apenas para ver suas origens. (btw. recurso da web é preferível, então eu poderia verificar fontes de muitos computadores - eu não tenho admin em todos eles)

    
por Grzegorz Wierzowiecki 08.06.2012 / 23:20

2 respostas

6

Deixe-me responder a sua pergunta com uma resposta alternativa. Eu acho que você quer ler o código das ferramentas tradicionais de linha de comando Unix, não apenas a versão GNU delas. Ler o código de ferramentas semelhantes de diferentes projetos é uma boa prática para aprender diferentes ideias e implementações.

O GNU tem uma boa interface web para o repo de coreutils: link

A família BSD tem interfaces web semelhantes para os repositórios:

A base de código BSD é interessante porque geralmente usa menos código para as mesmas ferramentas, ou seja: suporta apenas opções tradicionais, sem opções extras, sh é um shell real e não apenas um link para outro shell grande (bash), etc. semelhante a coreutils estão dentro de bin, sbin, usr.bin e usr.sbin.

Você também pode navegar pelas mesmas interfaces da web se quiser ler o código para criar software de terceiros (semelhante ao pkgbuild do arch). O NetBSD e o FreeBSD usam o pkgsrc do repositório do NetBSD. O OpenBSD e o FreeBSD possuem estas estruturas dentro de seus respectivos repositórios.

Outros repos interessantes para o seu propósito são:

por 09.06.2012 / 23:25
2

Como não há lugar central para o desenvolvimento de código aberto, não há repositório central contendo a maioria dos softwares de código aberto. Alguns usam o GitHub, o BitBucket, servidores privados, Sourceforge, Launchpad, etc. Portanto, este é um ambiente verdadeiramente distribuído e não há benefício imediato em ter um repositório apenas copiando a origem.

Por outro lado, as distribuições binárias (binários de envio em vez do código-fonte) geralmente fornecem a origem para a maioria dos pacotes e as fornecem a todos os usuários. Portanto, sua melhor chance é usar a infraestrutura fornecida pelas distribuições. Por favor, esteja ciente de que eles não necessariamente contêm as últimas alterações e correções e podem estar desatualizados.

Exemplos de como baixar um pacote de origem da sua distribuição:

yumdownloader --source packagename
apt-get source packagename

Para o Arch, dê uma olhada nas respostas em as respostas para uma pergunta semelhante no stackoverflow.

Se você quiser apenas fazer o download do código fonte, você pode usar packages.debian.org, por exemplo, link para coreutils . Isso fornecerá um link de download para o pacote original ( orig.* ou a fonte limpa para alguns pacotes dsfg.* ). Você poderia fazer o mesmo com a lista de pacotes do Arch Linux, por exemplo: página arch coreutils . O Download from Mirror fará o download do pacote.

    
por 09.06.2012 / 18:43