¿Por qué debería usar siempre `rpm -U` y no` rpm -i` para instalar el paquete?


19

rpm tiene una opción -i( --install) para instalar un paquete
rpm tiene una opción -U( --upgrade) que instalará o actualizará un paquete

La documentación de Red Hat indica que rpm -ies perfectamente aceptable.

Sin embargo, cada documentación que he visto me ha recomendado usar -U, incluso si el paquete se está instalando por primera vez.

¿Por qué se rpm -Uprefiere comúnmente sobre rpm -i?

Respuestas:


37

La mayor documentación sugiere -Umás -iporque -ipuede fallar si el paquete ya se ha instalado, o que ya tenía instalada una versión anterior; while -Utendrá éxito incluso si la "actualización" del paquete no se instala en absoluto. Al dar un tutorial, como en el caso de la documentación, generalmente es una mejor idea dar comandos con una menor probabilidad de un estado de falla.


1

La documentación en realidad no dice que -idebería usarse para las actualizaciones. Dice que uno debería usarlo para las actualizaciones del kernel. La razón es que si el sistema no se inicia con el nuevo kernel, todavía tiene disponible el antiguo kernel. Sin embargo, este es un caso especial: los paquetes del kernel son bastante ortogonales en el sentido de que no poseen archivos en conflicto ya que todo está versionado (el kernel, initrd y los módulos de la biblioteca de varios paquetes del kernel pueden vivir uno al lado del otro).

Los paquetes de espacio de usuario ordinarios rara vez son tan independientes. Si lo utiliza rpm -ipara realizar una actualización, es probable que termine con dos paquetes del mismo nombre (y versión diferente) instalados al mismo tiempo, con los anteriores interrumpidos (medio sobrescritos). En realidad, es posible instalar el mismo paquete dos veces; una vez que eso sucede, es probable que algunas herramientas y / o personas se confundan bastante.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.