Diferença entre yum update vs yum install

20

Enquanto trabalhava com o rpmcomando, notei que, se eu instalei some-package-1.0e depois executei outro, os rpm -ivh some-package-1.1dois pacotes serão listados quando fizer rpm -qa | grep some-packageo seguinte:

some-package-1.0
some-package-1.1

No entanto, em vez de instalar o 1.1, se eu fizer o upgrade via o rpm -Uvh some-package-1.1arquivo, obtenho o resultado desejado de um único pacote (1.1) quando o fizer rpm -qa | grep some-package.

Agora o mesmo comportamento se aplica a yum installe yum update?

Eu pergunto porque, com o rpm -Ucomando (upgrade), um pacote não precisa existir para atualizar / instalar, mas com yum update(se não me engano) um pacote já deve existir.

Estou particularmente interessado em saber o resultado da especificação de pacotes com suas versões, como some-package-1.0. Então, em resumo, o que eu quero saber é se eu tenho duas versões específicas, como some-package-1.0e some-package-1.1:

  1. A execução de um yum installno 1.1 após o 1.0 já estiver instalado, lista 2 pacotes?
  2. A execução será yum update some-package-1.1substituída com sucesso some-package-1.0?
kaizenCoder
fonte

Respostas:

31

As principais diferenças entre o YUM e o RPM são que você yumsabe como resolver dependências e pode obter esses pacotes adicionais ao executar seu trabalho. Embora rpmpossa alertá-lo sobre essas dependências, não é possível obter pacotes adicionais.

Quanto à instalação versus atualização. Ambas as ferramentas podem executar uma instalação, e o RPM até permitirá que você instale várias versões simultaneamente, mas o YUM informará que esse pacote já está instalado. Portanto, o YUM não permitirá que você instale várias versões.

Quanto a yum update, isso reagirá de uma de duas maneiras. Se você indicar um pacote que deseja atualizar, ele tentará fazer o download de todas as dependências necessárias e instalá-las também. Se você executá-lo sem nenhum nome de pacote, yum updatetentará atualizar todos os pacotes instalados no seu sistema.

Se você usá- yum upgradelo, fará o mesmo que yum update, exceto que tentará remover todos os pacotes marcados como "obsoletos".

Exemplo

Aqui está um cenário não muito diferente do seu. Uma nova versão do vim-X11está disponível.

$ yum check-update vim-X11 | expand
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit

vim-X11.x86_64                     2:7.4.417-1.fc19                      updates

E atualmente estou nesta versão:

$ rpm -q vim-X11 | expand
vim-X11-7.4.179-1.fc19.x86_64

Quando tentamos instalá-lo:

$ sudo yum install vim-X11
...   
=================================================================================================================================================================
 Package                                 Arch                              Version                                      Repository                          Size
=================================================================================================================================================================
Updating:
 vim-X11                                 x86_64                            2:7.4.417-1.fc19                             updates                            1.2 M
Updating for dependencies:
 vim-common                              x86_64                            2:7.4.417-1.fc19                             updates                            5.9 M
 vim-enhanced                            x86_64                            2:7.4.417-1.fc19                             updates                            1.0 M
....
Running transaction
  Updating   : 2:vim-common-7.4.417-1.fc19.x86_64                                                                                                            1/6 
  Updating   : 2:vim-enhanced-7.4.417-1.fc19.x86_64                                                                                                          2/6 
  Updating   : 2:vim-X11-7.4.417-1.fc19.x86_64                                                                                                               3/6 
  Cleanup    : 2:vim-X11-7.4.179-1.fc19.x86_64                                                                                                               4/6 
  Cleanup    : 2:vim-enhanced-7.4.179-1.fc19.x86_64                                                                                                          5/6 
  Cleanup    : 2:vim-common-7.4.179-1.fc19.x86_64                                                                                                            6/6 
  Verifying  : 2:vim-enhanced-7.4.417-1.fc19.x86_64                                                                                                          1/6 
  Verifying  : 2:vim-X11-7.4.417-1.fc19.x86_64                                                                                                               2/6 
  Verifying  : 2:vim-common-7.4.417-1.fc19.x86_64                                                                                                            3/6 
  Verifying  : 2:vim-enhanced-7.4.179-1.fc19.x86_64                                                                                                          4/6 
  Verifying  : 2:vim-X11-7.4.179-1.fc19.x86_64                                                                                                               5/6 
  Verifying  : 2:vim-common-7.4.179-1.fc19.x86_64                                                                                                            6/6 

Então, em resumo

  1. A execução de um yum installno 1.1 após o 1.0 já estiver instalado, lista 2 pacotes?

Não. O YUM ainda executará uma atualização mesmo quando você tiver solicitado a instalação, se o pacote já estiver instalado.

  1. A execução com yum update some-package-1.1êxito substituirá o some-package-1.0?

Sim.

slm
fonte
Obrigado pela resposta muito detalhada. Portanto, da maneira que vejo, posso continuar a usar yum installquando especificar o nome do pacote com a versão e não me preocupar com a instalação de várias versões. Uma situação que eu gostaria de usar yum updateseria quando eu especificasse apenas o nome do pacote, correto?
kaizenCoder
@aspiringCodeArtisan - isso está parcialmente correto. yum installdetectará que um pacote já está instalado e passará a atualizá-lo versus instalá-lo, como meu exemplo mostrou.
slm
@slm - Para esclarecer, o rpm pode pesquisar um repositório semelhante ao zypper procurar por um pacote específico?
Motivado 17/01
11
@Motivated - não rpmé como dpkg, apenas se preocupa com o gerenciamento dos arquivos no disco local. Para "gerenciamento" de repositório entre o sistema e um repositório, você precisa de algo como yumou dnf.
slm
11
@Motivated - rpmquando usado para instalar a partir de um URL, não faz nenhum dep de pacotes para atraí-los também, ele apenas baixa o rpm localmente e depois o instala.
slm