[Howto] Generer Arch Linux softwarepakker og derivater

En af de ting, jeg bedst kan lide ved Arch Linux og dens derivater er enorm lethed at oprette pakker, der senere skal installeres på systemet, i modsætning til de kendte deb af Debian / Ubuntu / Linux Mint / etc, der er et kaos (og hvis de er biblioteker, fortæller jeg dig ikke engang).

En grundskabelon ville være denne:

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

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

Nu vil jeg forklare hver parameter:

  • # Vedligeholdelse: I det er navnet på vedligeholderen af ​​pakken sat
  • pkgnavn: Navnet på pakken. Det kan kun indeholde bogstaver, tal, -, _ og +
  • pkver: pakkeversion. pe 1.0.0
  • pkgrel: gennemgang af programmet eller pakken. pe 1
  • pkgdesc: pakkebeskrivelse.
  • bue: programmets arkitektur: det kan være en hvilken som helst (for alle), i686 og x86_64, være nogen for pakker, der ikke kræver kompilering, såsom bash- eller python-programmer. Hvis det er et program, der har brug for det (for eksempel programmer i C eller C ++), skal du angive i686, hvis det er til 32 bit eller x86_64 til 64 bit. Generelt, hvis den er kompatibel med begge, er den indstillet (i686, x86_64)
  • url: url til programmets officielle side. Det tilrådes at sætte det.
  • licens: programlicensen. f.eks. GPL3
  • grupper: de grupper, som pakken hører til. grupper = ('system')
  • afhænger af: i det angiver vi de pakker, der er nødvendige for gennemførelsen af ​​programmet. pependens = ('python2' 'pygtk')
  • lavet afhænger: de afhængigheder, der kun kræves for at kompilere pakken. Hvis koden skal downloades fra en versionshåndtering, anbefales det at sætte den. pe: makedepends = ('git')
  • kilde: i det angiver vi de filer, der er nødvendige for at oprette pakken. Som hovedregel er det url til pakken, der indeholder koden, en patch, en .desktopt-fil, ikoner osv. pe: kilde = (pacsyu.desktop)
  • md5summer: her er md5-summen af ​​filerne angivet i kilden. For at vide hvilke der kører fra en terminal i mappen, hvor PKGBUILD er (efter at have skrevet filstierne i kilden) makepkg -g og summen vises på skærmen.
    Det er også muligt at bruge andre summer som sh1.
  • bygge: i denne funktion placerer vi kommandoer, der kræves for at fortsætte med at kompilere softwaren. Hvis det ikke er nødvendigt at kompilere, er det kun nødvendigt følgende funktion)
  • pakke: i denne anden funktion går programinstallationskommandoer. For eksempel, hvis vi kompilerer C-kode her, vil installationen gå.

Og for at afslutte skal vi bare udføre makepkg for at kontrollere, at pakken er genereret.
Som du kan se, er det svært for os. Så efterlader jeg dig med nogle ekstra parametre for makepkg:

  • -jeg: Pålægger makepkg at installere pakken, når den er oprettet.
  • -s: Installer pakkeafhængighederne, hvis de findes i arkiverne.
  • -F: Hvis der allerede er en pakke med dette navn, version og revision med denne parameter, beder vi dig om at overskrive den.
  • -c: Rens arbejdsmapperne (pkg og kilde), når de er færdige.
  • -EN: Pak pakken om uden at skulle kompilere igen.

Jeg anbefaler at se flere PKGBUILD-filer for at se flere eksempler, udfør kommandoen makepkg -h for at se resten af ​​programparametrene ud over at se makepkg officiel dokumentation på Arch Linux Wiki hvad kan du finde her


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   jamin samuel sagde han

    Meget godt …

    Kan du få en .exe-pakke til at styre (kompilere) til en Arch-pakke?

    Som for eksempel den berømte download manager mypony ??

    1.    passende sagde han

      Så vidt jeg ved, er det ikke muligt, så husk at .exe er binære filer og ikke kildekode. Men der er JDownloader.

    2.    v3 på sagde han

      nogen bruger linux og savner Myponi ... jijijijiji

      jDownloader er i java, og det er velkendt for alle, at java forårsager lungekræft ...

  2.   mælkeagtig28 sagde han

    interessant, vi bliver nødt til at teste pakker Jeg tror, ​​jeg vil være tilbøjelig til at gøre den fra qbittorrent hahaha eksisterer allerede i yaourt, men at have din egen version vil ikke være dårlig at teste, tak for informationshilsnerne

  3.   MSX sagde han

    God input, +1
    Jeg vil tilføje, at de også er lettere at oprette og vedligeholde end Gentoo ebuilds!

    Med hensyn til Debian tror jeg, at denne distro ville øge sit handicap enormt bare ved at modernisere eller migrere til et mere moderne pakke- og pakkehåndteringssystem, jeg ved ikke, hvornår den sidste opdatering af dpkg / apt-sæt vil være, men konceptet skulle allerede har let 15 år, og sandheden er, at i dag er anakronistisk.

  4.   rådner87 sagde han

    Mange tak, jeg gjorde det lidt, mens jeg ledte efter det på wiki, og jeg havde ikke forstået strukturen (jeg ville opdatere PlayonLinux-en), men jeg gav stadig op ... der er ting, hvor jeg gerne vil har en assistent eller noget lignende (ikke skyde mig) men stadig ... i mangel af værktøjer over tid vil jeg se om jeg opretter nogen

    1.    MSX sagde han

      Tak til din guide begyndte jeg at oprette Zeyas PKGBUILD (http://web.psung.name/zeya/), så snart jeg er færdig med det, uploader jeg det til AUR 🙂

  5.   hypersayan_x sagde han

    i modsætning til den velkendte. deb af Debian / Ubuntu / Linux Mint / etc, som er et rod

    Helt enig, for et stykke tid siden forsøgte jeg at oprette en pakke til Ubuntu, og jeg kunne ikke finde forståelige oplysninger om, hvordan man lavede en, til sidst opgav jeg og installerede programmet groft.
    Det samme program for Arch tog mig mindre end 5 minutter at sætte pakken sammen.
    Og jeg er ikke sikker, men jeg synes, RPM er lidt nemmere at gøre end DEB, men sværere end Arch.

  6.   hackloper775 sagde han

    Meget god og let, og med hensyn til .deb er det ikke så svært, ja det for iOS

    hilsen

  7.   Carlos sagde han

    Jeg tror, ​​dette ville have tjent mig for nogen tid siden, da jeg uploadede min første PKGBUILD til AUR 🙂

  8.   clerafel sagde han

    Kan nogen forklare, hvad det er for mig, jeg er ny, og jeg ved ikke, om dette hjælper mig med at installere en .deb-pakke, men lokalt i manjaro, et spil for at være nøjagtigt. Ja, det virker?