![Script de instalación previa del mantenedor del paquete `instalar` vs `actualizar`](https://rvso.com/image/231042/Script%20de%20instalaci%C3%B3n%20previa%20del%20mantenedor%20del%20paquete%20%60instalar%60%20vs%20%60actualizar%60.png)
Según el paquete Debiandocumentación del script de mantenimiento, el script de preinstalación se puede llamar con el argumento install
o con el upgrade
primero:
El
preinst
script se puede llamar de las siguientes maneras:
new-preinst
instalarnew-preinst
instalarversión antigua nueva versiónnew-preinst
mejoraversión antigua nueva versión
¿Cuál es la diferencia entre install old-version new-version
y upgrade old-version new-version
? La primera forma (solo install
) parece clara, pero no entiendo la diferencia entre install
y upgrade
dónde también se especifican los números de versión antiguos y nuevos.
Respuesta1
Esto se explica enla sección “detalles”:
- si el paquete ya está completamente instalado,
preinst
se llama conupgrade
las versiones antigua y nueva; - si el paquete se instaló anteriormente y todavía tiene sus archivos de configuración (está en estado "Config-Files",es deciraparece como
rc
endpkg -l
la salida de),preinst
se llama coninstall
las versiones antigua y nueva; - si el paquete se está instalando recientemente o se eliminó previamente,
preinst
se llamainstall
sin información de versión.
Dado que preinst
se ejecuta antes de la fase de descomprimir, upgrade
indica que hay disponible una versión anterior del contenido del paquete, mientras que install
indica que no hay ninguna versión del contenido del paquete (aparte de los archivos de configuración). Por otra parte, si se proporciona información de la versión, eso indica que es posible que sea necesario manejar archivos de configuración.
No hay muchos escenarios en los que la diferencia entre upgrade
y install
sea significativa, pero uno que me viene a la mente es el de las actualizaciones que implican la exportación de datos. Por ejemplo, en upgrade
modo,slapd
's preinst
exporta sus bases de datos; no puede hacerlo en install
modo porque no están presentes las herramientas adecuadas.
Respuesta2
Considerar:
- Instala el paquete A, versión x.
- Elimina el paquete A, pero sin purgarlo, por lo que permanecen los archivos, usuarios, grupos, etc.
- Instala el paquete A, versión y.
Ahora los scripts de mantenimiento necesitan manejar estos archivos de configuración, usuarios, grupos, etc., aunque estrictamente hablando, no estás actualizando, sino simplemente instalando. Puedes ver esto en el segundo diagrama de flujo aquí:"Instalando un paquete que fue previamente eliminado, pero no eliminado"