<Anterior | Contenido | Siguiente>
8.4.2. Scripts de configuración
Además de la control archivo, el control.tar.gz El archivo de cada paquete Debian puede contener varios scripts (postinstancia, correo postal, preinstancia, prematuro) llamado por dpkg en diferentes etapas del procesamiento de un paquete. Nosotros podemos usar dpkg-yo para mostrar estos archivos como residen en un . Deb archivo del paquete:
$ dpkg -I /var/cache/apt/archives/zsh_5.3-1_amd64.deb | cabeza
nuevo paquete debian, versión 2.0.
tamaño 814486 bytes: archivo de control = 2557 bytes.
$ dpkg -I /var/cache/apt/archives/zsh_5.3-1_amd64.deb | cabeza
nuevo paquete debian, versión 2.0.
tamaño 814486 bytes: archivo de control = 2557 bytes.
838 bytes,
3327 bytes,
969 bytes,
348 bytes,
175 bytes,
175 bytes, Paquete: zsh Versión: 5.3-1
20 líneas
43 líneas
41 líneas
20 líneas
5 líneas
5 líneas
control
md5sums
* postinstant
* correo postal
preinst
* prematuro
#! / Bin / sh
#! / Bin / sh
#! / Bin / sh
#! / Bin / sh
838 bytes,
3327 bytes,
969 bytes,
348 bytes,
175 bytes,
175 bytes, Paquete: zsh Versión: 5.3-1
$ dpkg -I zsh_5.3-1_amd64.deb preinst
#! / bin / sh conjunto -e
# Agregado automáticamente por dh_installdeb
dpkg-maintscript-helper symlink_to_dir / usr / share / doc / zsh zsh-common 5.0.7-3 - ”$ @”
# Finalizar la sección agregada automáticamente
$ dpkg -I zsh_5.3-1_amd64.deb preinst
#! / bin / sh conjunto -e
# Agregado automáticamente por dh_installdeb
dpkg-maintscript-helper symlink_to_dir / usr / share / doc / zsh zsh-common 5.0.7-3 - ”$ @”
# Finalizar la sección agregada automáticamente
La Política de Debian describe cada uno de estos archivos en detalle, especificando los scripts llamados y los argumentos que reciben. Estas secuencias pueden resultar complicadas, ya que si uno de los scripts falla, dpkg intentará volver a un estado satisfactorio cancelando la instalación o desinstalación en curso (en la medida de lo posible).
La dpkg Base de datos Puedes atravesar el dpkg base de datos en el sistema de archivos en / var / lib / dpkg /. Este directorio contiene un registro en ejecución de todos los paquetes que se han instalado en el sistema. Todos los scripts de configuración de los paquetes instalados se almacenan en el / var / lib / dpkg / info / directorio, en forma de archivo con el prefijo del nombre del paquete: | |
$ ls /var/lib/dpkg/info/zsh.* /var/lib/dpkg/info/zsh.list /var/lib/dpkg/info/zsh.md5sums /var/lib/dpkg/info/zsh.postinst /var/lib/dpkg/info/zsh.postrm /var/lib/dpkg/info/zsh.preinst /var/lib/dpkg/info/zsh.prerm | |
Este directorio también incluye un archivo con la .lista extensión para cada paquete, que contiene la lista de archivos que pertenecen a ese paquete: | |
$ cabeza /var/lib/dpkg/info/zsh.list /. /compartimiento / bin / zsh / bin / zsh5 / usr / Usr / lib / usr / lib / x86_64-linux-gnu / usr / lib / x86_64-linux-gnu / zsh /usr/lib/x86_64-linux-gnu/zsh/5.2 /usr/lib/x86_64-linux-gnu/zsh/5.2/zsh [...] | |
La / var / lib / dpkg / status El archivo contiene una serie de bloques de datos (en el formato de la famosa solicitud de comentarios de los encabezados de correo, RFC 2822) que describen el estado de cada paquete. La información del control El archivo de los paquetes instalados también se replica allí. | |
$ más / var / lib / dpkg / status Paquete: gnome-characters Estado: instalar bien instalado Prioridad: opcional Sección: gnome Tamaño instalado: 1785 Mantenedor: Mantenedores de Debian GNOME ➥ [email protected]> Arquitectura: amd64 Versión: 3.20.1-1 [...] | |
Analicemos los archivos de configuración y veamos cómo interactúan. En general, el preinstancia El script se ejecuta antes de la instalación del paquete, mientras que el postinstancia lo sigue. Igualmente, prematuro se invoca antes de la eliminación de un paquete y correo postal después. Una actualización de un paquete equivale a la eliminación de la versión anterior y la instalación de la nueva. No es posible describir en detalle todos los escenarios posibles aquí, pero discutiremos los dos más comunes: una instalación / actualización y una eliminación.
Estas secuencias pueden ser bastante confusas, pero una representación visual puede ayudar. Manoj Srivastava hizo estos diagramas explicando cómo los scripts de configuración son llamados por dpkg. El proyecto Debian Women también ha desarrollado diagramas similares; son un poco más simples de entender, pero menos completos.
➨ https://people.debian.org/~srivasta/MaintainerScripts.html
➨ https://wiki.debian.org/MaintainerScripts
Precaución Las secuencias descritas en esta sección llaman a los scripts de configuración por nombres específicos,
Precaución Las secuencias descritas en esta sección llaman a los scripts de configuración por nombres específicos,
Nombres simbólicos del
Scripts
como viejo prerm or nuevo postinst. Son, respectivamente, los prematuro scriptcon
contenido en la versión anterior del paquete (instalado antes de la actualización) y el postinstancia
script contenido en la nueva versión (instalada por la actualización).
Nombres simbólicos del
Scripts