[Howto] Arch Linux-softwarepakketten en derivaten genereren

Een van de dingen die ik het leukst vind aan Arch Linux en zijn afgeleiden is de enorm gemak om pakketten te maken die later op het systeem worden geïnstalleerd, in tegenstelling tot de bekende . Deb van Debian / Ubuntu / Linux Mint / etc is dat een chaos (en als het bibliotheken zijn vertel ik het je niet eens).

Een basissjabloon zou dit zijn:

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

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

Nu zal ik elke parameter uitleggen:

  • # Onderhouder: Hierin staat de naam van de onderhouder van het pakket
  • pkgnaam: De naam van het pakket. Het mag alleen letters, cijfers, -, _ en + bevatten
  • pkver: pakketversie. pe 1.0.0
  • pkgrel: beoordeling van het programma of pakket. bijv. 1
  • pkgdesc: pakketbeschrijving.
  • boog: de architectuur van het programma: het kan elk zijn (voor iedereen), i686 en x86_64, elk voor pakketten die geen compilatie vereisen, zoals programma's in bash of python. Als het een programma is dat het nodig heeft (bijvoorbeeld programma's in C of C ++), moet je i686 aangeven als het voor 32 bits is of x86_64 voor 64 bits. In het algemeen, als het compatibel is met beide, is het ingesteld (i686, x86_64)
  • url: de url naar de officiële pagina van het programma. Het is raadzaam om het te zeggen.
  • licentie: de programma licentie. bijv. GPL3
  • groepen: de groepen waartoe het pakket behoort. groups = ('systeem')
  • hangt er van af: daarin geven we de pakketten aan die nodig zijn voor de uitvoering van het programma. pependens = ('python2' 'pygtk')
  • afhankelijk zijn van: de afhankelijkheden die alleen nodig zijn om het pakket te compileren. Als de code moet worden gedownload van een versiemanager, is het raadzaam om deze te plaatsen. pe: makedepends = ('git')
  • bron: daarin geven we de bestanden aan die nodig zijn voor het maken van het pakket. Als algemene regel is het de url naar het pakket die de code, een patch, een .desktopt-bestand, pictogrammen, enz. Bevat. pe: source = (pacsyu.desktop)
  • md5sommen: hier zijn de md5-sommen van de bestanden aangegeven in de broncode. Om te weten welke we uitvoeren vanaf een terminal in de map waar de PKGBUILD is (na het schrijven van de bestandspaden in de broncode) makepkg-g en de sommen verschijnen op het scherm.
    Het is ook mogelijk om andere sommen te gebruiken, zoals sh1.
  • bouwen: in deze functie plaatsen we de opdrachten die nodig zijn om door te gaan met het compileren van de software. Als het niet nodig is om te compileren, is alleen de volgende functie nodig)
  • pakket: in deze andere functie gaan de programma-installatieopdrachten. Als we hier bijvoorbeeld C-code aan het compileren zijn, zou make install gaan.

En om te eindigen, moeten we het gewoon uitvoeren makepkg om te controleren of het pakket is gegenereerd.
Zoals u kunt zien, is het moeilijk voor ons. Dan laat ik je achter met wat extra parameters van makepkg:

  • -ik: Geeft makepkg opdracht om het pakket te installeren nadat het is gemaakt.
  • -S: Installeer de pakketafhankelijkheden als ze zich in de opslagplaatsen bevinden.
  • -F: Als er al een pakket is met die naam, versie en revisie met deze parameter, dan vragen we je om het te overschrijven.
  • -C: Reinig de werkmappen (pakket en bron) als u klaar bent.
  • -EEN: Verpak het pakket opnieuw zonder opnieuw te hoeven compileren.

Ik raad aan om meer PKGBUILD-bestanden te zien om meer voorbeelden te zien, voer de opdracht uit makepkg -h om de rest van de programmaparameters te zien, naast het zien van de makepkg officiële documentatie over Arch Linux Wiki wat kun je vinden hier


14 reacties, laat de jouwe achter

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   jamin-samuël zei

    Zeer goed …

    Kun je een .exe-pakket beheren (compileren) naar een Arch-pakket?

    Zoals bijvoorbeeld de bekende downloadmanager Mipony ??

    1.    gepast zei

      Voor zover ik weet is dit niet mogelijk, onthoud dat de .exe binaries zijn en geen broncode. Maar er is JDownloader.

    2.    v3on zei

      iemand gebruikt linux en mist Myponi… jijijijiji

      jDownloader is in Java, en het is algemeen bekend dat Java longkanker veroorzaakt ...

  2.   melkachtig28 zei

    interessant, we zouden pakketten moeten testen, ik denk dat ik geneigd zal zijn om die van qbittorrent te doen hahaha het bestaat al in yaourt maar het hebben van je eigen versie zal niet slecht zijn om te testen, bedankt voor de informatie, groeten.

  3.   msx zei

    Goede input, +1
    Ik wil hieraan toevoegen dat ze ook gemakkelijker te maken en te onderhouden zijn dan Gentoo ebuilds!

    Wat betreft Debian, ik denk dat deze distro zijn handicap enorm zou verhogen door te moderniseren of te migreren naar een moderner pakket- en pakketbeheersysteem, ik weet niet wanneer de laatste update van de dpkg / apt-set zal zijn, maar het concept zou al moeten zijn gemakkelijk 15 jaar hebben en de waarheid is dat het vandaag anachronistisch is.

  4.   rot87 zei

    Heel erg bedankt, ik heb er een tijdje naar gezocht op de wiki en ik had de structuur niet begrepen (ik wilde de PlayonLinux-versie updaten) maar ik gaf het toch op ... er zijn dingen waarin ik zou willen heb een assistent of iets dergelijks (schiet me niet neer) maar toch ... als er geen tools zijn, zal ik na verloop van tijd kijken of ik er een maak

    1.    msx zei

      Dankzij je gids ben ik begonnen met het maken van Zeya's PKGBUILD (http://web.psung.name/zeya/), zodra ik het af heb, upload ik het naar de AUR 🙂

  5.   hypersayan_x zei

    in tegenstelling tot het bekende .deb van Debian / Ubuntu / Linux Mint / etc, dat een puinhoop is

    Helemaal mee eens, een tijdje geleden probeerde ik een pakket voor Ubuntu te maken en het was onmogelijk om begrijpelijke informatie te vinden over hoe ik er een moest maken, uiteindelijk gaf ik het op en installeerde ik het programma ruw.
    Hetzelfde programma voor Arch kostte me minder dan 5 minuten om het pakket in elkaar te zetten.
    En ik weet het niet zeker, maar ik denk dat RPM iets gemakkelijker te doen is dan DEB, maar moeilijker dan Arch.

  6.   hackloper775 zei

    Heel goed en gemakkelijk, en wat het .deb betreft, het is niet zo moeilijk, wel dat voor iOS

    groeten

  7.   Carlos zei

    Ik denk dat dit me een tijdje geleden zou hebben geholpen toen ik mijn eerste PKGBUILD naar AUR 🙂 uploadde

  8.   clerafel zei

    Kan iemand me vertellen wat het is, ik ben nieuw, en ik weet niet of dit me helpt een .deb-pakket te installeren, maar lokaal in manjaro, een spel om precies te zijn. Ja het werkt?