En av tingene jeg liker best med Arch Linux og dets derivater er enorm letthet å lage pakker som senere skal installeres på systemet, i motsetning til de kjente . Deb av Debian / Ubuntu / Linux Mint / etc som er et kaos (og hvis de er biblioteker, forteller jeg deg ikke).
En grunnmal ville være dette:
# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()
build() {
...
}
package() {
...
}
Nå vil jeg forklare hver parameter:
- # Vedlikeholder: I den er navnet på vedlikeholderen av pakken satt
- pkgnavn: Navnet på pakken. Den kan bare inneholde bokstaver, tall, -, _ og +
- pkver: pakkeversjon. pe 1.0.0
- pkgrel: gjennomgang av programmet eller pakken. pe 1
- pkgdesc: pakkebeskrivelse.
- bue: programmets arkitektur: den kan være hvilken som helst (for alle), i686 og x86_64, for hvilken som helst for pakker som ikke krever kompilering, for eksempel bash- eller python-programmer. Hvis det er et program som trenger det (for eksempel programmer i C eller C ++), må du angi i686 hvis det er for 32 bits eller x86_64 for 64 bits. Generelt sett, hvis den er kompatibel med begge, er den angitt (i686, x86_64)
- url: url til den offisielle siden i programmet. Det anbefales å si det.
- lisens: programlisensen. f.eks GPL3
- grupper: gruppene som pakken tilhører. grupper = ('system')
- avhenger: i den indikerer vi pakkene som er nødvendige for gjennomføring av programmet. pependens = ('python2' 'pygtk')
- gjør avhenger: avhengighetene som bare kreves for å kompilere pakken. Hvis koden skal lastes ned fra en versjonsbehandling, anbefales det å legge den. pe: makedepends = ('git')
- kilde: i den angir vi filene som er nødvendige for opprettelsen av pakken. Som hovedregel er det url til pakken som inneholder koden, en oppdatering, en .desktopt-fil, ikoner osv. pe: kilde = (pacsyu.desktop)
- md5sum: her er md5-summene av filene som er angitt i kilden. For å vite hvilke vi kjører fra en terminal i mappen der PKGBUILD er (etter å ha skrevet filstiene i kilden) makepkg -g og summene vises på skjermen.
Det er også mulig å bruke andre summer som sh1. - bygge: i denne funksjonen vil vi sette kommandoer som kreves for å fortsette å kompilere programvaren. Hvis det ikke er nødvendig å kompilere, er bare følgende funksjon nødvendig)
- pakke: i denne andre funksjonen vil kommandoer for programinstallasjon gå. For eksempel hvis vi kompilerer C-kode her, vil installasjonen gå.
Og for å fullføre må vi bare utføre makepkg for å bekrefte at pakken er generert.
Som du ser er det vanskelig for oss. Så lar jeg deg ha noen ekstra parametere for makepkg:
- -Jeg: Instruerer makepkg om å installere pakken etter at den er opprettet.
- -s: Installer avhengighetene til pakken hvis de er i lagringsplassene.
- -F: Hvis det allerede er en pakke med det navnet, versjonen og revisjonen med denne parameteren, ber vi deg overskrive den.
- -c: Rengjør arbeidsmappene (kg og kilde) når du er ferdig.
- -EN: Pakk pakken på nytt uten å måtte kompilere på nytt.
Jeg anbefaler å se flere PKGBUILD-filer for å se flere eksempler, utfør kommandoen makepkg -h for å se resten av programparametrene, i tillegg til å se makepkg offisiell dokumentasjon på Arch Linux Wiki hva kan du finne her
Veldig bra …
Kan du få en .exe-pakke til å administrere (kompilere) til en Arch-pakke?
Som for eksempel den berømte nedlastingsbehandleren Mipony ??
Så vidt jeg vet er det ikke mulig, husk at .exe er binære filer og ikke kildekode. Men det er JDownloader.
Som du sier, du kan ikke kompilere en exe på nytt, siden det er binær kode.
Du kan lage en pakke som installerer den og utfører den med Wine, i likhet med pakken i AUR for det velkjente P2P-programmet Ares.
noen bruker linux og savner Myponi ... jijijijiji
jDownloader er i java, og det er velkjent for alle at java forårsaker lungekreft ...
interessant, vi må teste pakker. Jeg tror jeg vil være tilbøyelig til å gjøre den fra qbittorrent hahaha eksisterer allerede i yaourt, men å ha din egen versjon vil ikke være dårlig å teste, takk for informasjonen, hilsen
Gode innspill, +1
Jeg vil legge til at de også er lettere å lage og vedlikeholde enn Gentoo ebuilds!
Når det gjelder Debian, tror jeg at denne distroen ville øke handikappet enormt bare ved å modernisere eller migrere til et mer moderne pakke- og pakkehåndteringssystem, jeg vet ikke når den siste oppdateringen av dpkg / apt-settet vil være, men konseptet burde allerede ha lett 15 år og sannheten er at i dag er anakronistisk.
Tusen takk, jeg så nylig etter den i wiki og jeg hadde ikke forstått strukturen (jeg ønsket å oppdatere PlayonLinux-en), men jeg ga fremdeles opp ... det er ting der jeg vil ha en assistent eller noe sånt (ikke skyte meg), men likevel ... i fravær av verktøy over tid vil jeg se om jeg lager noen
Takket være guiden din begynte jeg å lage Zeyas PKGBUILD (http://web.psung.name/zeya/) så snart jeg er ferdig med den, laster jeg den opp til AUR 🙂
Helt enig, for en stund siden prøvde jeg å lage en pakke for Ubuntu, og jeg klarte ikke å finne forståelig informasjon om hvordan jeg skulle lage en, til slutt ga jeg opp og installerte programmet omtrent.
Det samme programmet for Arch tok meg mindre enn 5 minutter å sette sammen pakken.
Og jeg er ikke sikker, men jeg tror RPM er litt lettere å gjøre enn DEB, men vanskeligere enn Arch.
Veldig bra og enkelt, og når det gjelder .deb er det ikke så vanskelig, vel det for iOS
Hilsen
Jeg tror dette hadde tjent meg for en tid siden da jeg lastet opp min første PKGBUILD til AUR 🙂
Kan noen forklare hva det er for meg, jeg er ny, og jeg vet ikke om dette hjelper meg å installere en .deb-pakke, men lokalt i manjaro, et spill for å være nøyaktig. Ja, det fungerer?
Jeg skrev nettopp en annen artikkel om hvordan du lager pakker for arch / manjaro fra .deb-pakker
https://blog.desdelinux.net/archlinux-crear-paquetes-multiplataforma-y-desde-paquetes-deb/
Ja, jeg hadde allerede sett det, men jeg er veldig ny og jeg forstår ikke om ikke bare denne linjen er
cd "$ {srcdir} /"
tjære xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
hva du har bak
hvis [«$ {CARCH}» = 'x86_64 ′]; deretter
ARCH = 'amd64'
md5sums=(‘192a0a222893d59d95f00c34f3c8a674’)
avhenger = ('openal' 'lib32-openal')
elif ["$ {CARCH}" = 'i686 ′]; deretter
ARCH = 'i386'
md5sums=(‘047c670443124193c5cc3dd54da99925’)
avhenger = ('openal')
fi
source = ("http://www.unaurl.com/files/$ trackmaster. $ ARCH.deb")
Jeg forstår det ikke, det ser veldig komplekst ut, de er felles trinn eller første del
cd "$ {srcdir} /"
tjære xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
det kan gjøres alene for å konvertere .deb. .tar.gz?