Qual é a diferença entre yum, apt-get, rpm, ./configure && make install?

126

Eu sou novo no Linux e estou executando o CentOS. Encontrei quatro maneiras de atualizar ou instalar o software.

Até agora, eu já vi:

  • yum install [program]
  • apt-get install [program]
  • rpm -i [program].rpm
  • wget [program].tar.gz-> unpack-> ./configure-> make->make install

Esse último é uma verdadeira dor, especialmente vindo do Windows, onde uma instalação do programa geralmente é um clique e um bom assistente de instalação.

Então, minhas perguntas são:

  • Por que existem tantas maneiras diferentes de fazer isso no Linux?
  • Qual você recomenda usar e por quê?
  • Existem outras maneiras de instalar programas no Linux?
Saif Bechan
fonte
Além disso, o que acontece com yumvs up2date. Eu nunca fui claro sobre a diferença.
Josh
apt-geté para Debian, e realmente não deve aparecer no CentOS ....
Kyle Strand

Respostas:

114

Todas essas ferramentas instalam software no seu sistema, mas estão trabalhando em níveis diferentes.

  • ./configure && make install

    A execução ./configure && make installcria e instala as bibliotecas ou executáveis ​​diretamente do código-fonte.

    A make installetapa basicamente copia os arquivos finais no seu sistema. Muitas fontes vêm com uma make uninstallregra especial para removê-las novamente, mas isso não é garantido e, obviamente, só funciona desde que você tenha as fontes configuradas. Além disso, isso não cuida das dependências necessárias.

    Freqüentemente, existe apenas o código fonte disponível para um determinado pacote, portanto esse é o único caminho a percorrer. Além disso, ./configuregeralmente aceita muitas opções, permitindo que você personalize seu pacote.

    Não conseguir descobrir qual software instalou qual arquivo e a falta de uma maneira confiável de removê-los do sistema são as principais falhas dessa abordagem.

  • RPM (Redhat Package Manager)

    rpminstala o software já configurado e compilado em seu sistema e também vem com uma desinstalação para se livrar dele novamente. Os pacotes precisam ser criados por alguém. Essa pessoa já decidiu quais recursos incluir e como melhor integrar o pacote ao layout do sistema. Ele também vem com uma lista de dependências.

    Como o rpms é usado para muitas distribuições lá, geralmente você deve certificar-se de que este rpm foi gravado para sua distribuição, para instalar caminhos, dependências e outras tarefas domésticas.

    Nos sistemas Debian, o formato de pacote equivalente é .debe a instalação e o banco de dados são tratados pela dpkgferramenta.

  • Yum

    yumé um invólucro adicional rpm. Ele mantém seu próprio banco de dados de arquivos rpm disponíveis para sua distribuição, geralmente em repositórios online. Para as versões estáveis ​​da maioria das distribuições, todos os pacotes desse banco de dados funcionam bem entre si. Este banco de dados pode ser pesquisado (por exemplo, com yum search some_name).

    Também resolverá automaticamente dependências para você. Os pacotes (e com alguma ajuda extra, suas dependências) também podem ser facilmente desinstalados.

    Nos sistemas Debian, o repositório equivalente e as ferramentas de resolução de dependências são fornecidas pelo Apt ( apt-gete aptitude).

Então, para resumir: se você quer apenas um software, tente yumprimeiro. Se não estiver disponível lá, você pode tentar encontrar um rpmpacote existente . Se não houver nenhum ou você tiver alguns requisitos especiais, crie a partir do código-fonte.

Benjamin Bannier
fonte
praticamente o que eu ia dizer. adicionado em uma menção aos equivalentes debian e retocou a formatação.
Quack Quixote 31/03
2
@ Quack: Obrigado. Mas não podemos todos nos calar apt-getou ainda é recomendado para alguma coisa?
Benjamin Bannier 31/03
2
você está certo, a aptidão é provavelmente a melhor a recomendar; Eu incluí o apt-get porque é amplamente referido, e um leitor que não conhece o aptitude pode ter ouvido falar do apt-get .
quack quixote
4
O que há de errado com o apt-get?
recursivo
5
@ recursive: em algum momento apt-getnão registrou dependências automáticas e as deixou para trás após uma desinstalação, enquanto aptitudeintroduzia o rastreamento de dependências adequado. Além disso, também forneceu alguns recursos adicionais não disponíveis no apt-get. Não tenho certeza, mas acho que em algum momento apt-gete aptitudeonde foi atualizado para usar o mesmo back-end avançado, fornecendo grande parte dessa funcionalidade.
Benjamin Bannier
5

Yum são RPM são a mesma coisa, exceto que yum obtém os pacotes da rede automaticamente e os instala (usando rpm -i) em uma etapa. Deve ser usado sempre que possível para facilitar a atualização. Use rpmsomente quando não houver nenhum pacote a ser encontrado yume use o makemétodo somente quando não houver um pacote .rpm disponível ou você precise alterar algumas opções em tempo de compilação.

marcusw
fonte