[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í


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Jamin-samuel va dir

    Massa bé ...

    Es pot fer que un paquet .exe es gestioni (compile) a un paquet d'Arch?

    Com per exemple el famós gestor de descàrregues Mipony ??

    1.    correcte va dir

      Fins on sé no es pot, recorda que els .exe són binaris i no codi font. Però està JDownloader.

    2.    v3on va dir

      algú fa servir linux i estranya Myponi ... jijijijiji

      jDownloader està en java, i és ben sabut per tots que java dóna cancer en els pulmons ...

  2.   lletós28 va dir

    interessant, caldria provar paquets crec que M'inclinaré per fer el de qbittorrent jajaja ja existeix a yaourt però tenir una versió pròpia no estarà gens malament per a provar, gràcies per la informació salutacions.

  3.   MSX va dir

    Bona aportació, +1
    Vull afegir que també són més fàcils de crear i mantenir que els ebuilds de Gentoo!

    Pel que fa a Debian, crec que aquesta distro aixecaria el seu handicap enormement amb només modernitzar o migrar a un sistema de paqueteria i gestió de paquets més modern, no sé de quan serà l'última actualització del conjunt dpkg / apt però el concepte ja ha de tenir fàcilment 15 anys i la veritat és que avui és anacrònic.

  4.   Rots87 va dir

    moltes gràcies feu poc el vaig caminar buscant en la wiki i no havia entès l'estructura (volia actualitzar el de la PlayOnLinux) però igual desistiment ... hi ha coses en les que m'agradaria que hi hagués una assistent o alguna cosa així (no m'afusellin) però igual ... a falta d'eines amb el temps vere si crec alguna

    1.    MSX va dir

      Gràcies a la teva guia em vaig posar a crear el PKGBUILD de Zeya (http://web.psung.name/zeya/), Ni bé ho acabi el pujo a l'AUR 🙂

  5.   hiperamor_x va dir

    a l'contrari que passa amb els coneguts .deb de Debian / Ubuntu / Linux Mint / etc que és un caos

    Totalment d'acord, fa un temps intenti crear un paquet per Ubuntu i em va ser impossible trobar informació comprensible sobre com fer un, a la fi vaig desistir i vaig instal·lar el programa al brut.
    El mateix programa per Arch em va prendre menys de 5 minuts armar el paquet.
    I no estic segur però crec que els RPM són lleugerament més fàcils de fer que els DEB, però més difícils que els d'Arch.

  6.   hackloper775 va dir

    Molt bo i fàcil, i pel que fa als .deb no és tan difícil, bé això per iOS

    Salutacions

  7.   Carlos va dir

    Crec que això m'hagués servidor fa algun temps quan vaig pujar el meu primer PKGBUILD a AUR 🙂

  8.   clerafel va dir

    alguiem em pot explicar això que és, sóc nou, i doncs no sé si això em serveixi per isnstalar un paquet .deb però localment en manjaro, un joc per a ser exactes. si serveix?