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
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 ??
Så vidt jeg ved, er det ikke muligt, så husk at .exe er binære filer og ikke kildekode. Men der er JDownloader.
Som du siger, kan du ikke kompilere en exe igen, da det er binær kode.
Du kan oprette en pakke, der installerer den og udfører den med Wine ligesom pakken i AUR i det velkendte P2P Ares-program.
nogen bruger linux og savner Myponi ... jijijijiji
jDownloader er i java, og det er velkendt for alle, at java forårsager lungekræft ...
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
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.
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
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 🙂
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.
Meget god og let, og med hensyn til .deb er det ikke så svært, ja det for iOS
hilsen
Jeg tror, dette ville have tjent mig for nogen tid siden, da jeg uploadede min første PKGBUILD til AUR 🙂
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?
Jeg skrev lige en anden artikel om, hvordan man opretter pakker til arch / manjaro fra .deb-pakker
https://blog.desdelinux.net/archlinux-crear-paquetes-multiplataforma-y-desde-paquetes-deb/
Ja, jeg havde allerede set det, men jeg er meget ny, og jeg forstår ikke, om ikke kun denne linje er
cd "$ {srcdir} /"
tjære xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
hvad du har bagved
hvis [«$ {CARCH}» = 'x86_64 ′]; derefter
ARCH = 'amd64'
md5sums=(‘192a0a222893d59d95f00c34f3c8a674’)
afhænger = ('openal' 'lib32-openal')
elif ["$ {CARCH}" = 'i686 ′]; derefter
ARCH = 'i386'
md5sums=(‘047c670443124193c5cc3dd54da99925’)
afhænger af = ('åbning')
fi
source = ("http://www.unaurl.com/files/$ trackmaster. $ ARCH.deb")
Jeg forstår det ikke, det ser meget komplekst ud, de er fælles trin eller den første del
cd "$ {srcdir} /"
tjære xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
det kan gøres alene for at konvertere .deb. .tar.gz?