Por que você sempre deve usar o `rpm -U` e não o` rpm -i` para instalar o pacote?

19

O rpm possui uma opção -i( --install) para instalar um pacote O
rpm possui uma opção -U( --upgrade) que instala ou atualiza um pacote

A documentação da red hat indica que rpm -ié perfeitamente aceitável.

No entanto, toda a documentação que eu já vi recomenda o uso -U, mesmo que o pacote esteja sendo instalado pela primeira vez.

Por que rpm -Ugeralmente é preferível rpm -i?

spuder
fonte

Respostas:

37

A maioria da documentação sugere -Umais -iporque -ipode falhar se o pacote já foi instalado, ou já teve uma versão anterior instalada; O while -Uterá êxito mesmo que a "atualização" do pacote não esteja sendo instalada. Ao dar um tutorial, como no caso da documentação, geralmente é uma idéia melhor fornecer comandos com menor probabilidade de um estado de falha.

DopeGhoti
fonte
1

A documentação realmente não diz que -ideve ser usada para atualizações. Diz que deve-se usá-lo para atualizações do kernel. O motivo é que, se o sistema falhar ao inicializar com o novo kernel, você ainda tem o kernel antigo disponível. Porém, este é um caso especial - os pacotes do kernel são praticamente ortogonais no sentido de que não possuem arquivos conflitantes, pois tudo é versionado (módulos do kernel, initrd e library de vários pacotes do kernel podem conviver).

Pacotes comuns de espaço de usuário raramente são tão independentes. Se você usa rpm -ipara executar uma atualização, provavelmente terminará com dois pacotes com o mesmo nome (e versão diferente) instalados ao mesmo tempo, com os anteriores sendo quebrados (meio sobrescritos). Na verdade, é possível instalar o mesmo pacote duas vezes - uma vez que isso aconteça, algumas ferramentas e / ou pessoas provavelmente ficarão confusas.

peterph
fonte