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?

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.


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 .


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.