
¿Es simplemente la ruta de instalación? Si ese es el caso, entonces cualquier paquete que tenga una versión en el nombre/ruta nunca actualizará otro, por lo que no puede ser así. No veo ninguna mención de esto en la información de dependencia del manual. Al crear un RPM, ¿cómo le digo a cAPI-3.1.6-x86_64.rpm que se supone que debe actualizar cAPI-2.1.7-x86_64.rpm cuando lo instalo, no crear una nueva ruta en /usr/lib e ignorarla? el paquete existente?
Respuesta1
Generalmente de acuerdo con@msuchyque la característica relevante es la combinación del paquetenombreyarquitectura, ayuda a dar una visión general.
El lugar para buscar información no es "upgrade", sinoinstalando múltiples versionesde un paquete:
Múltiples versiones instaladas(en rpm.org) ofrece una buena descripción general:
Todas las herramientas de administración de paquetes funcionan usando ciertas claves para hacer referencia a paquetes/programas. Normalmente esa clave es el paquete. nombre o paquete nombre y paquete arco
Es decir, hay dos opciones (normalmente): nombre del paquete por sí solo o nombre del paquete en combinación con la arquitectura. Continúa diciendo
Los paquetes del kernel están creados específicamente para que no ofrezcan archivos conflictivos de una versión del kernel a la siguiente.
Es decir, los kernels se tratan de manera especial porque los desarrolladores de paquetes saben que todos los archivos en un paquete de kernel de Linux tienen nombres distintos (ya sea que los nombres de archivos tengan la versión incorporada o los archivos vivan en directorios con la versión incorporada). . Ése es un caso especial. Demasiados casos especiales hacen que los mantenedores de RPM trabajen.
Continúa mostrando cómo se crean paquetes para programas con versiones estables a largo plazo utilizando esos números de versión como parte del paquete.nombre, permitiendo así instalar múltiples versiones del programa en la misma máquina. El ejemplo dado es para Python. Otros programas que podrías ver usando el mismo esquema incluyen apache, autoconf, gcc, java. Aquí hay algunos ejemplos de Fedora22:
SDL2-2.0.3-5.fc22.x86_64
openjpeg2-2.1.0-6.fc22.x86_64
pygobject2-2.28.6-13.fc22.x86_64
pygobject3-3.16.2-1.fc22.x86_64
pygobject3-base-3.16.2-1.fc22.x86_64
python3-3.4.2-6.fc22.x86_64
qt5-qtbase-5.5.0-15.fc22.x86_64
vte291-0.40.2-1.fc22.x86_64
vte3-0.36.4-1.fc22.x86_64
webkitgtk3-2.4.9-1.fc22.x86_64
webkitgtk4-2.8.5-2.fc22.x86_64
Cuando ve estos paquetes, es fácil confundirse acerca de qué números forman parte del nombre del paquete y cuáles son losversiónyliberar. RPM usa guiones ( -
) para separarlos: si no hay guiones, el número es parte del nombre.
Respuesta2
Es la %{name}.%{arch}
combinación. Si esto es lo mismo, entonces es una actualización. Si difiere entonces es otra instalación.
Es decir, puedes tenerlo cAPI-3.1.6-x86_64
e cAPI-3.1.6-i386
instalarlo simultáneamente. Pero no puedes tenerlo cAPI-3.1.6-x86_64
en cAPI-2.1.7-x86_64
un solo sistema (a menos que hagas trucos realmente sucios).