Como os pacotes são realmente instalados via apt-get install?

29

Ao usar o apt-get installmétodo para instalar um pacote no ubuntu, existe alguma diferença fundamental entre obter o código-fonte desse pacote e construí-lo do zero? A apt-get installfuncionalidade simplesmente baixa a fonte e a constrói em sua máquina para um diretório especificado ou há mais coisas acontecendo nos bastidores?

Finalmente (talvez isso não tenha resposta), um método é melhor que o outro? O que estou procurando aqui é que a compilação você mesmo do código-fonte tem alguma vantagem ou é melhor deixar apt-getfazer a coisa?

mathematician1975
fonte

Respostas:

25

As vantagens de um sistema de gerenciamento de pacotes como apt, yum, pacman, emerge, etc incluem:

  • É fácil consultar qual versão de um pacote está instalada ou disponível.
  • É fácil remover completamente um pacote, certificando-se de que todos os seus arquivos sumiram.
  • É fácil verificar a integridade dos arquivos dos pacotes, para que você possa ver se ele foi corrompido ou violado.
  • É fácil atualizar um pacote instalando a nova versão e removendo todos os arquivos das versões antigas. Isso garantirá não deixar nenhum arquivo remanescente do pacote antigo para confundir ou quebrar as coisas.
  • É fácil ver quais pacotes exigem ou fornecem coisas que outros pacotes fornecem ou exigem, para que você tenha certeza de ter os itens necessários para que o pacote funcione corretamente.
  • É fácil instalar ou remover grupos de pacotes.
  • Em muitos casos, é possível fazer o downgrade de volta para uma versão anterior de um pacote, por exemplo, quando uma nova versão possui um bug.

Embora seja para o Fedora, veja também:

https://fedoraproject.org/wiki/Package_management_system

Instalar a partir da fonte pode ter vantagens

  • Você pode personalizar os binários (ativar / desativar opções)
  • Um pacote mais atualizado está disponível nos repositórios
  • Às vezes, necessário para correções de bugs

Mas as desvantagens são que você precisará atualizar manualmente o pacote quando uma nova versão estiver disponível e você frequentemente perderá o suporte.

IMO, se você deseja compilar todos ou a maioria dos seus pacotes, eu aconselho o Gentoo.

Pantera
fonte
11
Para esclarecer esta excelente resposta, se você se compilar, o Update Manager ficará inconsciente e, portanto, não atualizará seu aplicativo quando as atualizações forem lançadas. Além disso, o apt (gerenciador de pacotes escolhido pelo Ubuntu) não compila; ele baixa os binários compilados prontos. Finalmente, o apt mantém automaticamente o seu sistema de menus quando você instala ou remove programas. Quando você compila manualmente, você precisa fazer isso sozinho.
Paddy Landau
11
Uma outra vantagem geralmente pequena de compilar os pacotes é que eles serão compilados com mais conhecimento do seu hardware exato e poderão ser executados mais rapidamente. Se você seguir esse caminho, considere usar o checkinstall. asic-linux.com.mx/~izto/checkinstall Monitora o que foi instalado e ajuda a removê-lo mais tarde se necessário.
21412 Joe
Estou corrigido sobre a parte mais rápida em execução.
18712 Joe
18

O Apt-get é um utilitário de manuseio de pacotes (CLI) do APT, back-end para Synaptic e Aptitude .

O método apt-get no acionamento do seu sistema verifica as fontes ou repositórios oficiais listados no arquivo

etc/apt/sources.list

Por exemplo. em execução (que eu uso) , executa algo comosudo apt-get update && sudo apt-get upgrade

insira a descrição da imagem aqui

onde Ign (Ignorar) na frente do Link declara que nenhuma alteração foi feita desde a última visita a esses repositórios e Get indica a recuperação do arquivo Sources informando as alterações do pacote disponível recentemente nesse Repositório.

Não, o utilitário apt-get não baixa o arquivo de origem , mas sim o pacote .deb empacotado e lançado pelos empacotadores oficiais do Ubuntu, que foram testados quanto à estabilidade e integração com o seu sistema.

Os pacotes baixados do apt-get podem ser encontrados em

/var/cache/apt

onde você pode ver todos os pacotesUpdates como .deb e até comparar para verificar a versão deles, visitando estes pacotes de atualizações precisas .

No que diz respeito à compilação a partir dos pacotes de origem, não é aconselhável nem recomendado para o Ubuntu 12.04, pois é uma versão LTS, você pode ver os motivos aqui

É melhor compilar a partir do código-fonte ou instalar a partir de um pacote .deb?

A compilação de programas da fonte aceleraria meu sistema operacional?

Vantagens / desvantagens da instalação do código fonte

Para outras referências: apt-get , sources.list .

atenz
fonte
na verdade, os 3 programas, apt-get, aptitude e sinápticas são back-ends paradpkg
Javier López
11
O Aptitude é front-end para o dpkg . Considerando dpkg pode ser usado como um front-end para dpkg-deb e dpkg-query
atenz
2

Se você criar a partir do código-fonte, terá mais opções no que está incluído. Instalar a partir de apt-getapenas instala um pacote pré-criado.

Quanto ao que é melhor, depende do que você precisa. Eu nunca precisei compilar a partir da fonte, mas não faço nada muito extenso no meu laptop ubuntu.

Corey Whitaker
fonte
Então o apt-get não cria nada - apenas baixa um binário essencialmente?
mathematician1975
3
Exatamente. Está baixando um binário pré-construído para sua arquitetura (amd64, i386, armel, etc.).
Tgm4883
2

Eu acho que você pode usar o apt-get para instalar fontes de pacotes.

  1. Você precisa ativar repositórios de código fonte

    Abra o arquivo /etc/apt/sources.list, você verá linhas comentadas (começa com #) que possuem "origem" nelas.

    Descomente-os

  2. Instale dependências do programa que você deseja:

    sudo apt-get build-dep "program"

  3. Baixe e compile seu programa:

    sudo apt-get -b source "program"

Depois disso, você recebe um pacote .deb no seu diretório pessoal.

LnxSlck
fonte