Into: Gosto de aprender lendo fontes. Mas é cansativo procurá-los na Internet divididos em muitos sites de projetos diferentes. Gostaria de ver um repositório central navegável com fontes de muitos aplicativos em um só lugar.
- Quando alguém quer encontrar documentação de alguma ferramenta Linux, o melhor lugar é:
man toolname
. - Quando quero procurar fontes Linux "sob demanda", sempre posso pular para: Referência cruzada do Linux .
- Quando desejo encontrar a equipe mais comum, encontro todas as fontes no Coreutils .
- Quando quero verificar como criar algo, posso (por exemplo) pular para http://www.archlinux.org/packages/ , verificar o pkgbuild.
Existe algum repositório que contém fontes da maioria das ferramentas em um só lugar? - assim como man
mantém a documentação ou fontes de kernel do Linux Cross Reference .
Quero dizer algo para verificar "rapidamente" "sob demanda" como as coisas são implementadas. (Sim, eu conheço o google -> mas estou cansado da rotina: 1. pesquisando no site do projeto 2. navegando no repositório ou pior ainda -> verificando seu repositório 3. excluindo quando terminar)
OBSERVAÇÃO:
Eu enfatizei, gostaria de verificar as ferramentas: rápido, rápido, sob demanda.
Significa: eu não quero instalar o aplicativo inteiro com suas fontes apenas para dar uma olhada nas fontes. (btw. o recurso da web é preferível, para que eu possa verificar fontes de muitos computadores - não tenho administrador em todos eles)
fonte
apt-get source $PACKAGE-NAME
depois de ter adicionado o repositório de origemapt-get source
você pode executar este comando como usuário normal.Respostas:
Deixe-me responder à 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 idéias e implementações.
O GNU tem uma interface web agradável para o repositório de coreutils: http://git.savannah.gnu.org/cgit/coreutils.git
A família BSD possui interfaces da web semelhantes para os repositórios:
A base de código do 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 big shell (bash), etc. Ferramentas semelhantes ao coreutils estão dentro de bin, sbin, usr.bin e usr.sbin.
Você também pode navegar pelas mesmas interfaces da Web se desejar ler o código para criar software de terceiros (semelhante ao pkgbuild do arch). O NetBSD e o DragonFly usam o pkgsrc do repositório do NetBSD. O OpenBSD e o FreeBSD possuem essas estruturas em seus respectivos repositórios.
Outros repositórios interessantes para o seu propósito são:
fonte
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 GitHub, 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 fonte.
Por outro lado, as Distribuições binárias (binários de remessa em vez do código-fonte) normalmente fornecem a fonte para a maioria de seus pacotes e para todos os usuários. Portanto, sua melhor chance é usar a infraestrutura fornecida pelas Distribuições. Esteja ciente de que eles não contêm necessariamente as alterações e correções mais recentes e podem estar desatualizados.
Exemplos de como baixar um pacote de origem da sua distribuição:
Para o Arch, dê uma olhada nas respostas para uma pergunta semelhante no stackoverflow.
Se você apenas deseja 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 pacotesdsfg.*
). Você pode fazer o mesmo com a lista de pacotes do Arch Linux, por exemplo: página arch coreutils . ODownload from Mirror
fará o download do pacote.fonte