Todos os softwares são programas , também chamados de pacotes de código-fonte . Portanto, todos os pacotes de origem precisam ser criados primeiro, para serem executados no seu sistema.
Os pacotes binários já são criados a partir da fonte por alguém com recursos e parâmetros gerais fornecidos no software, para que um grande número de usuários possa instalá-lo e usá-lo.
Pacotes binários são fáceis de instalar .
Mas pode não ter todas as opções do pacote upstream.
Portanto, para instalar a partir do código-fonte, você precisa criar o código-fonte. Isso significa que você precisa cuidar das dependências por conta própria. Além disso, você precisa estar ciente de todos os recursos do pacote para poder construí-lo adequadamente.
Vantagens de instalar a partir da fonte:
- Você pode instalar a versão mais recente e sempre pode ficar atualizado, seja um patch de segurança ou um novo recurso.
- Permite reduzir os recursos durante a instalação, de acordo com suas necessidades.
- Da mesma forma, você pode adicionar alguns recursos que podem não ser fornecidos no binário.
- Instale-o no local desejado.
- No caso de algum software, você pode fornecer informações específicas sobre o hardware para uma instalação adequada.
Em resumo, a instalação a partir do código - fonte oferece uma opção de personalização pesada , ao mesmo tempo em que exige muito esforço, enquanto a instalação a partir do binário é mais fácil, mas você pode não conseguir personalizar o que deseja.
Atualização : adicionando o argumento relacionado à segurança nos comentários abaixo. Sim, é verdade que durante a instalação do binário você não tem a integridade do código fonte. Mas então depende de onde você obteve o binário. Existem muitas fontes confiáveis de onde você pode obter o binário de qualquer novo projeto, o único aspecto negativo é o tempo . Pode levar algum tempo até que o binário das atualizações ou até um novo projeto apareçam em nossos repositórios confiáveis.
E, acima de tudo, sobre segurança de software, gostaria de destacar esta página hilária nos laboratórios da Bell fornecidos por Joe nos comentários abaixo.
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:
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:
dev
pacotes - pode haver muitas delas.Se você estiver disposto a fazer um esforço extra, a compilação a partir da fonte poderá fornecer os benefícios de:
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.fonte
Além das outras respostas, gostaria de acrescentar algo:
Se você decidir compilar um programa sozinho, precisará pensar que compilar não é algo que você faz apenas uma vez. Você provavelmente precisará se inscrever na lista de desenvolvimento dos aplicativos que decidiu compilar e manter-se atualizado com as novas versões e, principalmente, as atualizações de segurança.
Toda vez que o aplicativo é atualizado, você terá que recompilar a nova versão, portanto, lembre-se de que você terá que gastar um pouco do seu tempo toda semana.
Se você não puder pagar, é melhor deixar que o mantenedor do pacote faça esse trabalho por você.
fonte
Construir a partir da fonte permite especificar a arquitetura exatamente da sua máquina. As novas CPUs possuem instruções adicionais que os compiladores entendem, reduzindo um pouco o desempenho. Pacotes pré-compilação geralmente contam com a CPU mais arcaica ainda em uso comum.
Isso é importante principalmente para aplicativos críticos ao projeto que usam muito a CPU, como ferramentas de pipeline bioinformática, por exemplo, ou ferramentas de modelagem geofísica. Esse software é executado em um ambiente muito controlado, não possui controle de acesso por conta própria; portanto, raramente há bugs de segurança tão urgentes que precisam ser corrigidos em dias ou horas. Quase nunca é necessário rodar em uma máquina diferente com arquitetura inicialmente desconhecida.
Sim, eu sabia, os computadores são muito, muito, muito rápidos agora e todos os esforços ou ações que você executa são muito, muito, muito caros, mas no terceiro dia de espera e espera que seu programa seja concluído (esta é a situação da qual estou falando), tais verdades comece a parecer questionável.
Diferentemente, aplicativos como navegadores e similares devem ser melhor utilizados no repositório de mantenedores (e não em alguns pacotes pré-criados baixados), pois é muito importante mantê-los atualizados.
fonte
Uma maneira de obter o melhor dos dois mundos (software atualizado, instalação / desinstalação simples, incorporar a maioria dos ajustes de distribuição e adaptações, pode otimizar os requisitos locais), enquanto os custos (precisa se manter atualizado, cuidado com os bugs) e correções de última hora, siga o desenvolvimento, você está por conta própria com relação a correções de bugs e incompatibilidades entre versões) não podem ser atenuadas (muito), é criar seus próprios pacotes, começando pelos pacotes de origem da sua distribuição. Sim, é mais trabalho do que apenas construir e instalar.
fonte