Um arquivo de origem contém o código original, conforme escrito pelo desenvolvedor, em qualquer idioma que ele escolher (C, C ++, Python etc.) e é genérico. Não é específico para nenhuma distribuição e, em muitos casos, para qualquer sistema operacional.
Um pacote (RPM ou DEB por exemplo) é o executável binário (ou script interpretado etc.) pré-preparado para sua distribuição específica. A tarefa de preparar a fonte para a compilação (adicionando as correções necessárias, etc.), a compilação real, a criação de arquivos de configuração específicos da distribuição, a criação de scripts de pré e pós-instalação, etc. são todos executados pelo mantenedor do pacote.
Em outras palavras, todo o trabalho de burro foi feito para você em um pacote, enquanto você precisará fazer isso sozinho se optar por instalar a partir do código-fonte.
É muito mais fácil usar um pacote em quase todos os casos como:
- Eles são muito mais fáceis de instalar
- Eles são projetados especificamente para trabalhar com sua distribuição
- Às vezes, eles são corrigidos pelo mantenedor do pacote para corrigir erros específicos da distribuição
- O gerenciador de pacotes os desinstalará
- O gerenciador de pacotes gerenciará todas as dependências para você
- O gerenciador de pacotes cuidará das atualizações
- Você não precisa instalar ferramentas de desenvolvedor no seu sistema (compiladores, make etc)
No entanto, às vezes a versão empacotada é uma versão antiga ou, pior ainda, não existe uma versão empacotada; nesse caso, sua única opção é se compilar. Se fizer isso, você deve considerar o seguinte:
- Você precisará instalar todas as ferramentas de desenvolvedor em seu sistema
- Você será responsável por verificar uma atualização e recompilar
- Você precisará garantir que todas as dependências estejam instaladas, incluindo
dev
pacotes - pode haver muitas delas.
- Pode ser necessário depurar problemas se não funcionar como esperado em sua distribuição
Se você estiver disposto a fazer um esforço extra, a compilação a partir da fonte poderá fornecer os benefícios de:
- Acesso à última versão disponível
- A opção de otimizar o processo de compilação para desempenho / estabilidade
- Prazer!
Observe que, embora alguns pacotes pré-criados de distros forneçam executáveis binários prontos para instalação e execução (RPM e DEB são exemplos), outras distros fornecem pacotes que simplesmente automatizam o processo de compilação.
O Gentoo's ebuilds
é um exemplo disso - o pacote é basicamente instruções para o gerenciador de pacotes, descrevendo como compilar e instalar o executável. Isso tem muitas das vantagens dos gerenciadores de pacotes tradicionais (atualizações automáticas, desinstalação etc.), enquanto ainda permite ao usuário otimizar o processo de compilação ao seu gosto.
O Arch Linux possui um sistema de empacotamento em que os pacotes principais são binários, enquanto muitos pacotes extras são compilados no sistema usando PKGBUILD
arquivos.