rpm - atualizar não atualizando?

1

Alguém por favor me ajude a entender o comando rpm. Nas man pages do rpm:

rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

This upgrades or installs the package currently installed to a newer version.
This is the same as install, except all other version(s) of the package are
removed after the new package is installed.

Meu entendimento é que, se eu indicar um PACKAGE_FILE que é uma atualização de algo que eu já instalei, ele substituirá os arquivos ... atualizando o pacote.

Especificamente, estou tentando atualizar o VirtualBox em um Fedora 14 . Estou executando o seguinte comando:

rpm -Uvh VirtualBox-4.1-4.1.4_74291_fedora14-1.x86_64.rpm

e estou recebendo (muitos) erros dizendo que há uma versão mais antiga do arquivo

... <similar output omitted>

file /bla/virtualbox/bla/powernotification-r0drv.c from install of
   VirtualBox-4.1-4.1.4_74291_fedora14-1.x86_64 conflicts with file from 
   package VirtualBox-4.0-4.0.12_72916_fedora14-1.x86_64

... </similar output omitted>

Eu obviamente não estou entendendo algo aqui. Alguém pode lançar alguma luz sobre isso?

    
por Hari Seldon 30.10.2011 / 22:39

3 respostas

1

-U só pode atualizar pacotes com o mesmo nome e os dois pacotes têm nomes diferentes. Um é chamado VirtualBox-4.0 e o outro é chamado VirtualBox-4.1 .

VirtualBox-4.0-4.0.12_72916_fedora14-1       .x86_64
^name          ^version              ^release ^arch
    
por 30.10.2011 / 22:54
0

O RPM é apenas um pacote, ou seja, o seu comando instala apenas o pacote VirtualBox. Se a nova versão depender de versões atualizadas de outras coisas, o comando falhará (obviamente).

Você pode tentar "yum localinstall VirtualBox -..." (o yum primeiro resolve as dependências e obtém o que for necessário). Isso pode falhar também, se a nova versão exigir atualizações e algumas coisas existentes dependerem das atualizações (e nenhuma versão mais nova estiver disponível).

    
por 16.01.2013 / 01:26
0

No caso específico do VirtualBox, é seguro apagar e instalar novamente (por exemplo):

# rpm --erase VirtualBox-5.1-5.1.28_117968_el6-1.i686
# rpm --install VirtualBox-5.2-5.2.18_124319_el6-1.i686.rpm

Como mencionado acima, isso é causado pela inclusão do número da versão dentro do nome do pacote, portanto, o RPM não consegue descobrir que eles são realmente o mesmo pacote (possivelmente uma má decisão de empacotamento da Oracle).

# rpm -q -i VirtualBox
package VirtualBox is not installed

À primeira vista, isso parece confuso, mas o número da versão é obrigatório porque foi feito parte do nome do pacote.

# rpm -q -i VirtualBox-5.2
Name        : VirtualBox-5.2               Relocations: (not relocatable)
Version     : 5.2.18_124319_el6                 Vendor: Oracle Corporation
Release     : 1                             Build Date: Tue 14 Aug 2018 01:15:57 PM GMT
Install Date: Sun 30 Sep 2018 04:45:04 AM GMT      Build Host: tinderlin4.de.oracle.com
Group       : Applications/System           Source RPM: VirtualBox-5.2-5.2.18_124319_el6-1.src.rpm
Size        : 176286250                        License: GPLv2
Signature   : DSA/SHA1, Tue 14 Aug 2018 04:06:58 PM GMT, Key ID 54422a4b98ab5139
URL         : http://www.virtualbox.org/
Summary     : Oracle VM VirtualBox
Description :
VirtualBox is a powerful PC virtualization solution allowing
you to run a wide range of PC operating systems on your Linux
system. This includes Windows, Linux, FreeBSD, DOS, OpenBSD
and others. VirtualBox comes with a broad feature set and
excellent performance, making it the premier virtualization
software solution on the market.
    
por 30.09.2018 / 07:28

Tags