PKGBUILD (Español)

From ArchWiki
Revision as of 11:28, 3 November 2011 by Martin legion (Talk | contribs) (Construyendo paquetes)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Summary help replacing me
Una explicacion de las variables de PKGBUILD cuando se crean paquetes.
Overview
Template:Package management overview (Español)
Related
Creating Packages_(Español)
VCS PKGBUILD Guidelines

Un Template:Filename es un archivo descriptivo de construcción de un paquete para Arch Linux utilizando la guía de Creación de paquetes. Este articulo describe posibles variables del Template:Filename.

Construyendo paquetes

Los paquetes en Arch Linux son construidos utilizando la utilidad makepkg y la información almacenada en un Template:Filename. Cuando se ejecuta Template:Codeline busca un Template:Filename en el directorio actual y sigue las instrucciones ahí almacenadas para compilar y/o descargar y empaquetar todos los archivos necesarios en un archivo Template:Filename). Este archivo resultante contiene archivos binarios e instrucciones de instalación legibles para pacman.

Vea la documentación de Creando_paquetes_(Español) para mayor información

Variables

Las siguientes son variables que pueden ser encontradas en el archivo Template:Filename:

Template:Codeline 
El nombre del paquete. Debe consistir de caracteres alfanuméricos y guiones('-') y todas las letras deben estar en minúsculas. Por el bien de la consistencia el nombre del {Codeline|pkgname}} debe coincidir con el nombre del archivo comprimido del código fuente del software que se esta empaquetando. Por ejemplo, si el software que se esta empaquetando es Template:Filename, el nombre del Template:Codeline debe ser foobar. En el directorio de trabajo el nombre del {Filename|PKGBUILD}} también debe coincidir con el Template:Codeline.
Template:Codeline 
La versión del paquete . El valor debe ser el mismo que el del autor del software que se esta empaquetando. Puede contener letras, números y puntos pero no puede contener guiones medios ('-'). si el autor del paquete utiliza guiones medios en su sistema de versiones, remplazelos con un guion bajo ('_'). por ejemplo, si la versión de un paquete es 0.99-10, deberá ser cambiada a 0.99_10. si la variable pkgver es utilizada mas tarde en el PKGBUILD entonces el guion bajo puede ser sustituido fácilmente por un guion medio, por ejemplo: source=($pkgname-${pkgver//_/-}.tar.gz)
Template:Codeline 
El numero de versión del paquete especifico para Arch Linux. Este valor permite a los usuarios diferenciar entre empaquetados consecutivos de la misma versión del paquete. Cuando un paquete es liberado por primera vez, “el numero de versión empieza en 1” . cuando se hacen reparaciones y optimizaciones al mismo Template:Filename, el paquete sera “reliberado” y el “numero de liberación” aumenta por 1. cuando una nueva versión del paquete se libera (y no solo es una reparación u optimizacion) el numero de versión se resetea a 1.
Template:Codeline 
La descripción del paquete. La descripción del paquete debe ser de 80 caracteres o menos y no debe incluir el nombre del paquete como auto referencia, por ejemplo “Nedit es un editor de texto para X11” debe ser escrito: “Un editor de texto para X11”.
Template:Codeline 
Una lista de arquitecturas en las que el Template:Filename suele compilar e instalar . Puede ser i686 y/o x86_64, {Codeline|arch=('i686' 'x86_64')}}. El valor any puede referir a independiente de arquitectura. Puede acceder al valor de la variable desde Template:Codeline durante el empaquetado.
Template:Codeline 
La URL del sitio oficial del software que esta siendo empaquetado.
Template:Codeline 
La licencia en la que el software es distribuido. Un paquete {Package Official|licenses}} has sido creado en Template:Codeline que contiene las licencias de uso común en Template:Filename , p ej. Template:Filename. Si un paquete es licenciado bajo alguna de estas licencias, el valor debe ser puesto al nombre del directorio, por ejemplo. Template:Codeline. Si la licencia no esta incluida en el paquete oficial Template:Package Official hay varias cosas que hay que hacer:
  1. Los campos de la licencia deben ser incluidos en Template:Filename, por ejemplo: Template:Filename.
  2. Si el paquete fuente no contiene los detalles de la licencia y esta solo es mostrada en otro lado, por ejemplo un sitio web, entonces tendrá que copiar la licencia en un archivo e incluirla
  3. Agregue el valor custom a la variable Template:Codeline. Opcionalmente puede remplazar custom con custom:nombre de la licencia. Una vez que esta licencia sea utilizada en dos o mas paquetes de un repositorio oficial (incluyendo Template:Codeline) se vuelve parte del paquete Template:Package Official
  • Adicionalmente la (L)GPL tiene varias versiones y permutaciones. Para software bajo la (L)GPL la convención aceptada es:
    • (L)GPL - (L)GPLv2 o cualquier versión posterior
    • (L)GPL2 - (L)GPL2 solamente
    • (L)GPL3 - (L)GPL3 o cualquier versión posterior
Template:Codeline 
El grupo al que pertenece el paquete. Por ejemplo, cuando usted instala el paquete Template:Package Official, instala todos los paquetes que pertenecen al grupo kde.
Template:Codeline 
Una lista de paquetes que deben ser instalados antes de que el software empaquetado pueda ejecutarse. Si el software requiere una mínima versión de una dependencia, el operador >= puede ser utilizado para señalar esto, por ejemplo. Template:Codeline. No es necesario listar paquetes en los que su software dependa si hay otros paquetes instalados con esta dependencia ya instalada. Por ejemplo gtk2 depende de glib2 y glibc. Pero glibc no debe ser listado como una dependencia de 'gtk2 por que ya es una dependencia de glib2.
Template:Codeline 
Una lista de paquetes que deben estar instalados para compilar el paquete pero que son innecesarios para que este funcione despues de la instalacion. Puede especificar un numero mínimo de dependencias de la misma forma que la lista de Template:Codeline.
Advertencia: Se asume que el grupo "base-devel" ya esta instalado cuando se construye un paquete con makepkg, los paquetes miembros del grupo base-devel" no deben ser incluidos en la lista de makedepends
Template:Codeline 
Una lista de paquetes que no son necesarios para que el paquete funcione en si, pero que proveen características adicionales. Una pequeña descripción de lo que hace cada paquete debe ser incluido. Una lista de Template:Codeline puede verse así
'optdepends=('cups: soporte de impresion'
'sane: soporte de scanners'
'libgphoto2: soporte de cámaras digitales'
'alsa-lib: soporte de sonido'
'giflib: GIF soporte de imágenes'
'libjpeg: JPEG soporte de imágenes'
'libpng: PNG soporte de imágenes)'


Template:Codeline 
Una lista de nombres de paquetes que este paquete provee o cumple (o un paquete virtual como “cron o “sh”). Si utiliza esta variable, deberá agregar la versión (Template:Codeline y tal vez el Template:Codeline) que este paquete provea si acaso hay dependencias afectadas por este. Por ejemplo, si usted provee un paquete modificado de “qt” llamado “qt-foobar” versión 3.3.8 que provee “qt” entonces la lista de Template:Codeline deberá verse así: {Codeline|provides=('qt=3.3.8')}}. Poner la linea {Codeline|provides=('qt')}} causara que las dependencias fallen a la hora de requerir una versión especifica de “qt”. No agregue Template:Codeline a su lista de provides, esto es hecho automáticamente.
Template:Codeline 
Una lista de paquetes que pueden causar problemas con este paquete si es instalado. También puede especificar las propiedades de la versión de los paquetes conflictivos de la misma forma que la lista de Template:Codeline.
Template:Codeline 
Una lista de paquetes obsoletos que son remplazados por este paquete, por ejemplo: Template:Codeline para el paquete Template:Package Official. Después de sincronizar con Template:Codeline inmediatamente remplazara un paquete instalado al encontrarse en los repositorios con otro paquete coincidente en la lista Template:Codeline. Si acaso provee un paquete alternativo de un paquete ya existente utilize la variable Template:Codeline que solo es evaluada cuando se esta instalando el paquete conflictivo.
Template:Codeline 
Una lista de paquetes que son respaldados como Template:Filename cuando el paquete es removido. Esto es comúnmente utilizado por paquetes que aplican archivos de configuración en Template:Filename. La ruta de archivo de esta lista deberá ser relativa (ejemplo: Filename|etc/pacman.conf}}) y no rutas absolutas como (e.g. Template:Filename).
Template:Codeline 
Esta lista permite sobre escribir algunos de los comportamientos por default de {Codeline|makepkg}}.para establecer una opción se debe incluir el nombre de la opción en la lista. Para revertir a el comportamiento default se debe agregar un ! al inicio de la opción. Las siguientes opciones pueden ser agregadas a la lista:
  • strip - Tira de los símbolos de binarios y bibliotecas.
  • docs - Salva los directorios Template:Filename
  • libtool – Deja los archivos de libtool (Template:Filename) en los paquetes.
  • emptydirs - Abandona los directorios vacíos de los paquetes
  • zipman – Comprime las paginas man y infocon gzip.
  • ccache - permite el uso de Template:Codeline durante la compilación. Es mas útil si no esta activada con algunos paquetes que tienen conflicto de construir con Template:Codeline activo.
  • distcc - permite el uso de Template:Codeline durante la compilación. Es mas útil si no esta activada con algunos paquetes que tienen conflicto de construir con Template:Codeline activo.
  • makeflags - Permite el uso de Template:Codeline especificadas por el usuario durante la compilación. Es mas útil si no esta activada con algunos paquetes que tienen conflicto de construir con Template:Codeline activo.
  • force - Forza al paquete a ser actualizado con una operación de actualización de pacman, incluso si el numero de versión no indica una actualización de versión. Esto es útil cuando el el esquema de versiones ha cambiado (o es alfabético) o que un downgrade es requerido por razones de seguridad.
Template:Codeline 
El nombre del script de instalación que sera incluido en el paquete. Pacman tiene la habilidad de almacenar y ejecutar un script especifico del paquete cuando instala, remueve o actualiza un paquete. El script contiene las siguientes funciones que se ejecutan en diferentes tiempos:
  • pre_install - Este script es ejecutado antes de extraer los archivos de instalación. Un argumento es pasado: nueva versión del paquete.
  • post_install - El script es ejecutado después de que los archivos son extraídos. Un argumento es pasado: nueva versión del paquete.
  • pre_upgrade - Este script es ejecutado antes de extraer los archivos de instalación. Dos nuevos argumentos son pasados en el siguiente orden: nueva versión del paquete, vieja versión del paquete.
  • post_upgrade - El script es ejecutado después de que los archivos son extraídos. Dos nuevos argumentos son pasados en el siguiente orden: nueva versión del paquete, vieja versión del paquete.
  • pre_remove - El script es ejecutado antes de que los archivos sean removidos. Un argumento es pasado: vieja versión del paquete.
  • post_remove – El script es ejecutado después de remover paquetes. Un argumento es pasado: vieja versión del paquete.
Tip: un prototipo del archivo Template:Filename esta guardado en Template:Filename.
Template:Codeline 
Una lista de archivos que son necesitados para construir el paquete. Debe contener la locación del código fuente del software, que en muchos casos es una dirección HTTP, FTP o URL. Las variables de Template:Codeline y Template:Codeline pueden ser utilizadas aquí (ejemplo: Template:Codeline).
Nota: Si necesita archivos que no puedan ser descargados en el momento (ejemplo: parches y configuraciones especiales) simplemente ubique esos archivos en el mismo directorio del Template:Filename y agregue el nombre del archivo a la lista. Cualquier ruta que se agregue aquí sera relativa a la ubicación del Template:Filename. Antes de que la compilación comience, todos los archivos de esta lista serán descargados y verificados en su existencia yTemplate:Codeline no procederá si hay archivos perdidos.
Template:Codeline 
Una lista de archivos dentro de la lista Template:Codeline que no deben ser extraídos ni descomprimidos de su formato actual por Template:Codeline. Esto aplica para ciertos archivos comprimidos en formato zip que no pueden ser manejados por bsdtar. En este caso “unzip” debe ser incluido como dependencia en la lista de Template:Codeline y la primer linea del archivo {Codeline|build()}} debe contener las lineas
cd $srcdir/$pkgname-$pkgver
unzip [source].zip
Template:Codeline 
Una lista de checksums MD5 de los archivos listados en la lista Template:Codeline. Una vez que todos los archivos de la lista Template:Codelineson descargados o están disponibles, un hash MD5 de cada archivo sera generado automáticamente y comparado con los valores de esta lista en el mismo orden que aparecen en la lista Template:Codeline. Mientras el orden de los archivos fuente en si no importa, es importante que coincida con el orden de esta lista por que Template:Codeline no puede adivinar a que checksum pertenece a que archivo. Puede generar esta lista fácil y rápido utilizando el comando {Codeline|makepkg -g}} en el directorio que contiene el Template:Filename. Note que el algoritmo MD5 es conocido por tener debilidades, así que debe considerar en utilizar una alternativa mas fuerte.
Template:Codeline 
Una lista de checksums SHA-1 160-bit. Esta es una alternativa a md5sums antes descrito, pero también es conocido de tener debilidades, así que debe considerar el uso de alternativas mas fuertes. Para habilitar el uso y la creación de estos checksum, asegúrese de poner la opción INTEGRITY_CHECK en makepkg.conf. Para mas información vea man makepkg.conf
Template:Codeline 
Una lista de checksums SHA-2 de diferentes tamaños, de 256, 384 y 512 respectivamente. Se cree que estas alternativas a md5sum son mas fuertes. Para habilitar el uso y la creación de estos checksum, asegúrese de poner la opción INTEGRITY_CHECK en makepkg.conf. Para mas información vea man makepkg.conf


Es practica común mantener el orden de las variables en el Template:Filename como se muestran arriba. Aun así, este orden no es mandatorio, y lo único obligatorio en este contexto es sintaxis correcta de Bash.