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
Zeer goed …
Kun je een .exe-pakket beheren (compileren) naar een Arch-pakket?
Zoals bijvoorbeeld de bekende downloadmanager Mipony ??
Voor zover ik weet is dit niet mogelijk, onthoud dat de .exe binaries zijn en geen broncode. Maar er is JDownloader.
Zoals u zegt, kunt u een exe niet opnieuw compileren omdat het binaire code is.
U kunt een pakket maken dat het installeert en uitvoert met Wine, net als het pakket in de AUR van het bekende P2P-programma Ares.
iemand gebruikt linux en mist Myponi… jijijijiji
jDownloader is in Java, en het is algemeen bekend dat Java longkanker veroorzaakt ...
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.
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.
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
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 🙂
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.
Heel goed en gemakkelijk, en wat het .deb betreft, het is niet zo moeilijk, wel dat voor iOS
groeten
Ik denk dat dit me een tijdje geleden zou hebben geholpen toen ik mijn eerste PKGBUILD naar AUR 🙂 uploadde
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?
Ik heb net een ander artikel geschreven over het maken van pakketten voor arch / manjaro van .deb-pakketten
https://blog.desdelinux.net/archlinux-crear-paquetes-multiplataforma-y-desde-paquetes-deb/
Ja, ik had het al gezien, maar ik ben erg nieuw en ik begrijp het niet, zo niet alleen is deze regel
cd "$ {srcdir} /"
tar xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
wat je erachter hebt
if [«$ {CARCH}» = 'x86_64 ′]; vervolgens
ARCH = 'amd64'
md5sums=(‘192a0a222893d59d95f00c34f3c8a674’)
afhankelijk = ('openal' 'lib32-openal')
elif ["$ {CARCH}" = 'i686 ′]; vervolgens
ARCH = 'i386'
md5sums=(‘047c670443124193c5cc3dd54da99925’)
afhankelijk = ('openal')
fi
source = ("http://www.unaurl.com/files/$ trackmaster. $ ARCH.deb")
Ik begrijp het niet, het ziet er erg complex uit, het zijn gezamenlijke stappen of het eerste deel
cd "$ {srcdir} /"
tar xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
het kan alleen worden gedaan om .deb te converteren. .tar.gz?