.\" dpkg manual page - dpkg-maintscript-helper(1) .\" .\" Copyright © 2010-2012 Raphaël Hertzog .\" .\" This is free software; you can redistribute it and/or modify .\" it under the terms of the GNU General Public License as published by .\" the Free Software Foundation; either version 2 of the License, or .\" (at your option) any later version. .\" .\" This is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with this program. If not, see . . .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH dpkg\-maintscript\-helper 1 "4 de mayo del 2012" "Proyecto Debian" "Herramientas de dpkg" .SH NOMBRE dpkg\-maintscript\-helper \- Solución alternativa a las limitaciones de dpkg en scripts de mantenedor . .SH SINOPSIS \fBdpkg\-maintscript\-helper\fP \fIorden\fP [\fIparámetro\fP...] \fB\-\-\fP \fIparámetro\-script\-mantenedor\fP... . .SH "ÓRDENES Y PARÁMETROS" .P \fBrm_conffile\fP \fIconffile\fP [\fIúltima\-versión\fP [\fIpaquete\fP]] .P \fBmv_conffile\fP \fIconffile\-antiguo\fP \fIconffile\-nuevo\fP [\fIúltima\-versión\fP [\fIpaquete\fP]] . .SH DESCRIPCIÓN .P Este programa está diseñado para su uso dentro de scripts de mantenedor para realizar tareas que dpkg no puede (por ahora) gestionar de forma nativa, bien por decisiones de diseño o limitaciones actuales. .P Muchas de estas tareas requieren la ejecución coordinada de varios scripts de mantenedor (\fBpreinst\fP, \fBpostinst\fP, \fBprerm\fP, \fBpostrm\fP). Para evitar errores sólo tiene que insertar la misma ejecución en todos los scripts, y el programa adaptará automáticamente su comportamiento en base a la variable de entorno \fBDPKG_MAINTSCRIPT_NAME\fP y a los argumentos de los scripts del mantenedor, que se deben introducir después de un guión doble. . .SH "TAREAS CON FICHEROS DE CONFIGURACIÓN «CONFFILES»" .P Al actualizar un paquete, dpkg no eliminará automáticamente un fichero de configuración (un fichero de configuración con cambios del usuario que dpkg debería preservar) si no está presente en la versión más reciente. Existen dos razones principales para esto: la primera es que puede que el fichero de configuración «conffile» haya desaparecido accidentalmente, con lo que la siguiente versión la restauraría. Los usuarios no querrían ver desparecer los cambios hechos. La segunda es permitir a los paquetes una transición de un fichero de configuración «conffile» mantenido por dpkg a un fichero mantenido por los scripts de mantenedor del paquete, habitualmente con una herramienta como debconf o ucf. .P Esto significa que si un paquete pretende renombrar o eliminar un fichero de configuración, debe hacerlo de forma explícita. \fBdpkg\-maintscript\-helper\fP se puede utilizar para implementar con sencillez dentro de los scripts del mantenedor la eliminación y el desplazamiento de ficheros de configuración «conffile». . .SS "ELIMINAR UN FICHERO DE CONFIGURACIÓN «CONFFILE»" .P Si se elimina un fichero de configuración «conffile» por completo, se debería eliminar del disco a menos que un usuario lo haya modificado. Se deberían preservar modificaciones locales en caso de existir. Si se cancela la actualización del paquete, el fichero de configuración «conffile» declarado como obsoleto no debería desaparecer. .P Esto se puede integrar introduciendo el siguiente texto de consola en los scripts de mantenedor \fBpreinst\fP, \fBpostinst\fP y \fBpostrm\fP: .P dpkg\-maintscript\-helper rm_conffile \e \fIconffile\fP \fIúltima\-versión\fP \fIpaquete\fP \-\- "$@" .P \fIconffile\fP es el nombre del fichero de configuración «conffile» a eliminar. .P \fIúltima\-versión\fP define la última versión de un paquete cuya actualización inicia una eliminación. Se debe definir la \fIúltima\-versión\fP de forma correcta para una eliminación correcta de los ficheros de configuración, incluso si el usuario reconstruye el paquete con una versión local. Por ejemplo, para un fichero que se elimina en la versión \fB2.0\-1\fP de un paquete, la \fIúltima\-versión\fP debe ser \fB2.0\-1~\fP. Esto provoca la eliminación del fichero de configuración incluso si la última versión es \fB1.0\-1\fP como \fB1.0\-1local1\fP. .P Si el fichero de configuración no se distribuye por diversos motivos, y modifica los scripts del mantenedor para eliminar el fichero obsoleto, la \fIúltima\-versión\fP se debe basar en la versión del paquete que está preparando, y no sobre la primera versión del paquete que no distribuye el fichero de configuración. .P \fIpaquete\fP es el nombre del paquete. Si está vació o se omite, se utiliza la variable de entorno «DPKG_MAINTSCRIPT_PACKAGE» (como define dpkg). .P Todos los parámetros de los scripts del responsable se deben introducir al programa a continuación de «\-\-». .P Implementación actual: en el script \fBpreinst\fP, comprueba si se ha modificado el fichero de configuración y lo renombra bien como \fIconffile\fP\fB.dpkg\-remove\fP (si no se ha modificado), o como \fIconffile\fP\fB.dpkg\-backup\fP (si se ha modificado). En el script \fBpostinst\fP, el segundo fichero se renombra a \fIconffile\fP\fB.dpkg\-bak\fP y se guarda como referencia ya que contiene modificaciones del usuario, mientras que el primer script se elimina. Si se interrumpe la actualización del paquete, el script \fBpostrm\fP reinstalará el fichero de configuración «conffile» original. Durante el purgado, el script \fBpostrm\fP borrará también el fichero \&\fB.dpkg\-bak\fP mantenido hasta ahora. . .SS "RENOMBRAR UN FICHERO DE CONFIGURACIÓN «CONFFILE»" .P Si se ha cambiado la ubicación de un fichero de configuración «conffile» debe asegurarse de que también migra los cambios hechos por el usuario. Esto puede parecer en principio como un sencillo cambio en el script \fBpreinst\fP, aunque resultará en un diálogo de dpkg para confirmar la edición del fichero «conffile» incluso si no son responsables de ellos. .P Puede integrar renombrar con sencillez insertando el siguiente texto de consola en los scripts de mantenedor \fBpreinst\fP, \fBpostinst\fP y \fBpostrm\fP. .P dpkg\-maintscript\-helper mv_conffile \e \fIconffile\-antiguo\fP \fIconffile\-nuevo\fP \fIúltima\-versión\fP \fIpaquete\fP \-\- "$@" .P \fIconffile\-antiguo\fP y \fIconffile\-nuevo\fP son el nombre antiguo y nuevo del fichero de configuración «conffile» a renombrar. .P \fIúltima\-versión\fP define la última del paquete cuya actualización inicia la modificación del nombre del fichero de configuración (para el valor correcto, consulte las notas relativas a \fBrm_conffile\fP. Si la \fIúltima\-versión\fP se omita o está vacía, se intenta la operación en cada actualización (nota: se recomienda definir la versión y que la operación se ejecuta una sola vez). .P \fIpaquete\fP es el nombre del paquete. Si está vació o se omite, se utiliza la variable de entorno «DPKG_MAINTSCRIPT_PACKAGE» (como define dpkg). .P Todos los parámetros de los scripts del responsable se deben introducir al programa a continuación de «\-\-». .P Implementación actual: el script \fBpreinst\fP comprueba si se ha modificado el fichero de configuración «conffile», preservándolo en su lugar si es así, o renombrándolo como \fIconffile\-antiguo\fP\fB.dpkg\-remove\fP en caso contrario. Durante la configuración, el script \fBpostinst\fP elimina \fIconffile\-antiguo\fP\fB.dpkg\-remove\fP y renombra \fIconffile\-antiguo\fP como \fIconffile\-nuevo\fP si el primero aún está disponible. Durante la cancelación de una instalación o actualización el script \fIpostrm\fP renombra \fIconffile\-antiguo\fP\fB.dpkg\-remove\fP nuevamente como \fIconffile\-antiguo\fP de ser necesario. . .SH "INTEGRACIÓN EN PAQUETES" .P Debido a que \fBdpkg\-maintscript\-helper\fP se utiliza en el script \fBpreinst\fP, usarlo incondicionalmente requiere una predependencia para asegurar que la versión requerida de dpkg se ha desempaquetado con anterioridad. La versión requerida depende de la orden usada, 1.15.7.2 para \fBrm_conffile\fP y \fBmv_conffile\fP: .P \fBPre\-Depends:\fP dpkg (>= 1.15.7.2) .P Aún así, en muchos casos la operación efectuada por el programa no es crítica para el paquete, y en lugar de utilizar un pre\-dependencia puede ejecutar el programa sólo si sabemos que la orden requerida es compatible con la versión de dpkg actualmente instalada: .P if dpkg\-maintscript\-helper supports \fIorden\fP; then dpkg\-maintscript\-helper \fIorden\fP ... fi .SH "TRADUCTOR" Rudy Godoy , Rubén Porras , Bruno Barrera C. , Carlos Izquierdo , Esteban Manchado y NOK. Debian L10n Spanish . .br Revisiones por Santiago Vila , Javier Fernández\-Sanguino, Rubén Porras, Luis Uribe y Omar Campagne.