Pacote-fonte
Contents
Apresentação
Definição de um pacote-fonte
Pacotes de código-fonte fornecem a você todos os arquivos necessários para compilar ou construir o software desejado.
Consiste, em sua forma mais simples, em três arquivos:
O arquivo tarball upstream com final .tar.gz
Um arquivo de descrição com final .dsc. Ele contém o nome do pacote, tanto no nome do arquivo como no conteúdo (após a palavra-chave Source:).
- Um arquivo tarball com todas as alterações feitas no código-fonte original, mais todos os arquivos criados para o pacote Debian.
Este tem um .debian.tar.gz (formato fonte: 3.0)
ou um final .diff.gz (formato de origem: 1.0)
Por que olhar o pacote-fonte?
Se você deseja estudar empacotamento ou um pacote Debian específico.
Se você deseja saber quais opções de tempo de compilação estão habilitadas para um pacote específico (DebianPackageConfiguration).
Por que se preocupar com o pacote-fonte se houver um pacote binário?
Alguns sistemas de construção (por exemplo, cmake) e scripts ad-hoc fornecem uma maneira conveniente de produzir pacotes binários (ou seja, arquivos .deb para Debian, .rpm para RedHat, etc.) de maneira uniforme. Embora tal abordagem pareça atraente à primeira vista, é insuficiente para upload para o Debian onde o pacote-fonte é necessário, e também pode ser inferior.
Distribuição apenas binária
não fornece nem mesmo uma maneira unificada de obter as fontes do software (como é agora com o pacote "apt-get source");
torna difícil (se não impossível) para um(a) usuário(a)/contribuidor(a) reconstruir o pacote .deb devido à falta de padronização nos procedimentos de construção e descrição das dependências de construção (build-dependencies). Frequentemente, é atenuado por autores(as) originais upstream com descrições detalhadas no README, mas as instruções podem variar de pacote para pacote. Eles não são garantia de serem completos; assim, tornando a reconstrução pouco simples e frágil. Portanto, não é nenhuma surpresa porque a política Debian exige pacotes-fonte com procedimentos de construção padronizados - o Debian precisa reconstruir o software independente de arquitetura para todas as plataformas suportadas (mais de 12).
- compor manualmente "Depends:" para um .deb gerado geralmente não seria correto nas suítes/releases do Debian, complicando assim os procedimentos de instalação. A solução rápida e suja geralmente consiste em construir estaticamente, perdendo assim os benefícios da modularidade no Debian, tornando o software menos robusto e seguro.
Como fazer o download de um pacote-fonte
As fontes normalmente não estão instaladas. Você só pode instalá-las se souber o nome do pacote.
Como encontrar o nome do pacote-fonte
Em http://www.debian.org/distrib/packages existe um mecanismo de busca que irá para: http://packages.debian.org/src:<nome>.
Um pacote-fonte pode gerar muitos .debs. Para saber o nome do pacote-fonte, consulte o campo Source: na saída de
apt-cache show nome_do_pacote
Às vezes, o campo SOURCE: não está presente, então verifique usando:
apt-cache showsrc nome_do_pacote
Com apt-get source
Uma forma de obter pacotes-fonte é com
apt-get source <nome do pacote>
Você precisa de uma entrada deb-src em seu arquivo /etc/apt/sources.list:
deb-src http://http.us.debian.org/debian unstable main
Um pacote-fonte é baixado no diretório atual e não é instalado (não aparecerá na lista de pacotes instalados), então você não precisa ser root para usar apt-get source.
De debian.org
Você pode fazer um download manualmente em http://www.debian.org/distrib/packages.
Quando estiver na página do pacote, escolha uma distribuição e você obterá um link para os três arquivos que compõem o pacote-fonte.
Trabalhando com um pacote-fonte
Como construir o pacote Debian
Você precisa de privilégios de root ou fakeroot para construir o .deb. Para construir automaticamente o pacote Debian após o download, também pode usar
apt-get --build source nome_do_pacote
Se quiser fazer pacotes otimizados do código-fonte para a sua máquina com o objetivo de possivelmente obter uma operação mais rápida, instale e use apt-build (que, por sua vez, usa apt-get source -b ...).
Como extrair os arquivos-fonte
Supondo que os arquivos do pacote-fonte estejam presentes no mesmo diretório, para descompactar um pacote-fonte você normalmente pode usar:
dpkg-source -x .../caminho/para/nome_do_pacote.dsc
Todos os arquivos serão descompactados no diretório: pacote-versão.
Veja também