[Howto] Generar paquets de programari en Arch Linux i derivats

Una de les coses que mes m'agrada d'Arch Linux i les seves derivades és la tremenda facilitat per crear paquets per després ser instal·lats en el sistema, a l'contrari que passa amb els coneguts .deb de Debian / Ubuntu / Linux Mint / etc que és un caos (i si són llibreries ni us explico).

Una plantilla base seria aquesta:

# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()

build() {
...
}
package() {
...
}

Ara explicaré cada paràmetre:

  • # Maintainer: S'hi posa el nom de el mantenidor de l'paquet
  • pkgname: El nom de l'paquet. Només pot contenir lletres, nombres, -, _ i +
  • pkver: versió de l'paquet. pe 1.0.0
  • pkgrel: la revisió de el programa o paquet. pe 1
  • pkgdesc: descripció de l'paquet.
  • arc: l'arquitectura de el programa: pot ser any (per a tots), i686 i x86_64, sent any per a paquets que no requereixen compilació, com programes en bash o Python. Si és un programa que si ho necessita (per exemple programes en C o C ++) s'haurà d'indicar i686 si és per a 32 bits o x86_64 per 64 bits. Per norma general si és compatible amb tots dos es posa (i686, x86_64)
  • uRL: la url a la pàgina oficial de el programa. És recomanable posar-ho.
  • llicència: la llicència d'el programa. pe GPL3
  • grups: els grups a què pertany el paquet. groups = ( 'system')
  • depens: en ella vam indicar els paquets que calen per a l'execució de el programa. pe depens = ( 'python2' 'PyGTK')
  • makedepends: les dependències que només són necessàries per compilar el paquet. Si es va a baixar el codi des d'un gestor de versions és recomanable posar-ho. pe: makedepends = ( 'git')
  • font: al indiquem els arxius necessaris per a la creació d'el paquet. Per norma general és la url a el paquet que conté el codi, un pegat, un arxiu .desktopt, icones, etc. pe: source = (pacsyu.desktop)
  • md5sums: aquí van les sumes md5 dels arxius indicats en source. Per saber quins són executem des d'una terminal a la carpeta on hi ha el PKGBUILD (havent escrit les rutes dels arxius en source) makepkg -g i ens sortirà en pantalla les sumes.
    També és possible usar altres sumes com SH1.
  • construir: en aquesta funció posarem els comandes necessàries per procedir a compilar el programari. Si no cal compilar només cal la següent funció)
  • package: en aquesta altra funció aniran les ordres d'instal·lació de el programa. Per exemple si compilem codi C aquí aniria el make install.

I ja per a finalitzar només hem d'executar makepkg per comprovar que el paquet es genera.
Com veieu ens és difícil. A continuació us deixo amb alguns paràmetres extra de makepkg:

  • -i: Indica a makepkg que instal el paquet un cop creat.
  • -s: Instal·la les dependències de l'paquet si aquestes estan en els repositoris.
  • -f: Si ja hi ha un paquet amb aquest nom, versió i revisió amb aquest paràmetre li vam indicar que el sobreescriure.
  • -c: Neteja les carpetes de treball (pkg i source) un cop acabat.
  • -R: Torna a empaquetar el paquet sense haver de tornar a compilar.

Recomano veure més fitxers PKGBUILD per veure més exemples, executar la comanda makepkg -h per veure la resta de paràmetres de el programa, a més de veure la documentació oficial de makepkg en la Wiki d'Arch Linux que podeu trobar aquí


Afegir com a font preferida a Google