Quero ler o código-fonte de algum pacote no Debian; como posso fazer isso?
Resposta
Baixar o código-fonte dos repositórios Debian é tão simples quanto executar apt-get source <PACKAGE>
. Ele colocará 3 arquivos em seu diretório atual, .dsc
que descreve o pacote, .orig.tar.gz
que contém fontes não modificadas e .diff.gz
que contém mudanças específicas do Debian. Mas se você receber o erro E: Unable to find a source package for <PACKAGE>
, pode não ter o repositório do código-fonte especificado, então vá para /etc/apt/sources.list
(ou algum arquivo em /etc/apt/sources.list.d/
que contém seu repositório Debian), encontre uma string como:
deb ftp://ftp.debian.org/debian wheezy main contrib non-free
Altere deb
para deb-src
:
deb-src ftp://ftp.debian.org/debian wheezy main contrib non-free
Atualize os arquivos de índice do pacote com sudo apt-get update
e tente novamente. Veja também:
Resposta
Uma segunda possibilidade é fazer o download o código-fonte do upstream diretamente ao invés de baixá-lo dos repositórios Debian. Isso tem a vantagem de que, se você não só quiser ler o código-fonte, mas também quiser mudar algo, pode fazer um commit diretamente e enviá-lo para o upstream (presumindo que não seja um patch do Debian).
Normalmente, você pode descubra o URL do repositório de código-fonte upstream no arquivo /usr/share/doc/$package_or_program_name/copyright
.
$ head /usr/share/doc/git/copyright Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Contact: [email protected] Source: https://www.kernel.org/pub/software/scm/git/ Files: * Copyright: © 2005-2014, Linus Torvalds and others. License: GPL-2 Files: xdiff/* Copyright: © 2003-2009, Davide Libenzi, Johannes E. Schindelin
Este arquivo também é referenciado em packages.debian.org (pesquise " Arquivo de direitos autorais ") .