En av de saker jag gillar mest med Arch Linux och dess derivat är enorm lätthet för att skapa paket som senare ska installeras på systemet, till skillnad från de kända . Deb av Debian / Ubuntu / Linux Mint / etc är ett kaos (och om de är bibliotek berättar jag inte för dig).
En basmall skulle vara den här:
# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()
build() {
...
}
package() {
...
}
Nu kommer jag att förklara varje parameter:
- # Underhållare: I den sätts namnet på underhållaren av paketet
- packnamn: Paketets namn. Den kan bara innehålla bokstäver, siffror, -, _ och +
- pkver: paketversion. pe 1.0.0
- pkgrel: granskning av programmet eller paketet. pe 1
- pkgdesc: paketbeskrivning.
- båge: programmets arkitektur: det kan vara vilken som helst (för alla), i686 och x86_64, var som helst för paket som inte kräver kompilering, till exempel bas- eller python-program. Om det är ett program som behöver det (till exempel program i C eller C ++) måste du ange i686 om det gäller 32 bitar eller x86_64 för 64 bitar. I allmänhet, om den är kompatibel med båda är den inställd (i686, x86_64)
- url: webbadressen till programmets officiella sida. Det är tillrådligt att uttrycka det.
- licens: programlicensen. t.ex. GPL3
- grupper: de grupper som paketet tillhör. grupper = ('system')
- beror: i den anger vi de paket som behövs för genomförandet av programmet. pependens = ('python2' 'pygtk')
- görberoende: beroenden som bara krävs för att kompilera paketet. Om koden ska laddas ner från en versionshanterare är det lämpligt att lägga den. pe: makedepends = ('git')
- källa: i den anger vi de filer som är nödvändiga för att skapa paketet. Som en allmän regel är det webbadressen till paketet som innehåller koden, en korrigeringsfil, en .desktopt-fil, ikoner etc. pe: källa = (pacsyu.desktop)
- md5summor: här är md5-summorna för de filer som anges i källan. Att veta vilka vi kör från en terminal i mappen där PKGBUILD är (efter att ha skrivit filvägarna i källan) makepkg -g och summan visas på skärmen.
Det är också möjligt att använda andra summor som sh1. - bygga: i denna funktion kommer vi att sätta kommandon som krävs för att fortsätta kompilera programvaran. Om det inte är nödvändigt att kompilera är det bara nödvändigt följande funktion)
- paket: i denna andra funktion kommer programinstallationskommandona att gå. Till exempel om vi sammanställer C-kod här skulle installationen gå.
Och för att avsluta måste vi bara köra makepkg för att verifiera att paketet genereras.
Som du kan se är det svårt för oss. Sedan lämnar jag dig med några extra parametrar för makepkg:
- -jag: Instruerar makepkg att installera paketet efter att det har skapats.
- -s: Installera paketberoenden om de finns i förvaren.
- -F: Om det redan finns ett paket med det namnet, versionen och versionen med den här parametern ber vi dig skriva över det.
- -c: Rengör arbetsmapparna (pkg och källa) när de är färdiga.
- -A: Packa om paketet utan att behöva kompilera om.
Jag rekommenderar att du ser fler PKGBUILD-filer för att se fler exempel, kör kommandot makepkg -h för att se resten av programparametrarna, förutom att se makepkg officiell dokumentation på Arch Linux Wiki vad kan du hitta här
Mycket bra …
Kan du göra ett .exe-paket som hanterar (kompilerar) till ett Arch-paket?
Som till exempel den berömda nedladdningshanteraren Mipony ??
Så vitt jag vet är det inte möjligt, kom ihåg att .exe är binära filer och inte källkod. Men det finns JDownloader.
Som du säger kan du inte kompilera om ett ex eftersom det är binär kod.
Ett paket kan skapas som installerar det och kör det med Wine, liksom paketet i AUR för det välkända P2P-programmet Ares.
någon använder Linux och saknar Myponi ... jijijijiji
jDownloader är i java, och det är välkänt för alla att java ger cancer i lungorna ...
intressant, vi skulle behöva testa paket Jag tror att jag kommer att vara benägen att göra den från qbittorrent hahaha finns redan i yaourt men att ha en egen version kommer inte att vara dåligt att testa, tack för informationen, hälsningar
Bra input, +1
Jag vill tillägga att de också är lättare att skapa och underhålla än Gentoo ebuilds!
När det gäller Debian tror jag att denna distro skulle öka sitt handikapp enormt bara genom att modernisera eller migrera till ett mer modernt paket- och pakethanteringssystem, jag vet inte när den senaste uppdateringen av dpkg / apt-uppsättningen kommer att vara men konceptet borde redan ha lätt 15 år och sanningen är att idag är anakronistisk.
Tack så mycket, jag sökte lite efter det på wiki och jag hade inte förstått strukturen (jag ville uppdatera PlayonLinux-en) men jag gav fortfarande upp ... det finns saker där jag skulle vilja ha en assistent eller något liknande (skjut inte mig) men ändå ... i avsaknad av verktyg över tid kommer jag att se om jag skapar några
Tack vare din guide började jag skapa Zeyas PKGBUILD (http://web.psung.name/zeya/) så snart jag är klar med den laddar jag upp den till AUR 🙂
Helt överens, för ett tag sedan försökte jag skapa ett paket för Ubuntu och det var omöjligt att hitta förståelig information om hur man skapar en, till slut gav jag upp och installerade programmet ungefär.
Samma program för Arch tog mig mindre än 5 minuter att sätta ihop paketet.
Och jag är inte säker men jag tror att RPM är något lättare att göra än DEB, men svårare än Arch.
Mycket bra och enkelt, och när det gäller .deb är det inte så svårt, ja det för iOS
hälsningar
Jag tror att detta skulle ha tjänat mig för en tid sedan när jag laddade upp min första PKGBUILD till AUR 🙂
Kan någon förklara vad det är för mig, jag är ny och jag vet inte om det hjälper mig att installera ett .deb-paket men lokalt i manjaro, ett spel för att vara exakt. Ja det funkar?
Jag skrev precis en annan artikel om hur man skapar paket för arch / manjaro från .deb-paket
https://blog.desdelinux.net/archlinux-crear-paquetes-multiplataforma-y-desde-paquetes-deb/
Ja, jag hade redan sett det, men jag är väldigt ny och jag förstår inte om inte bara denna linje är
cd "$ {srcdir} /"
tjära xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
vad du har bakom
om [«$ {CARCH}» = 'x86_64 ′]; sedan
ARCH = 'amd64'
md5sums=(‘192a0a222893d59d95f00c34f3c8a674’)
beror på = ('openal' 'lib32-openal')
elif ["$ {CARCH}" = 'i686 ′]; sedan
ARCH = 'i386'
md5sums=(‘047c670443124193c5cc3dd54da99925’)
beror på = ('openal')
fi
source = ("http://www.unaurl.com/files/$ trackmaster. $ ARCH.deb")
Jag förstår det inte, det ser väldigt komplicerat ut, de är gemensamma steg eller första delen
cd "$ {srcdir} /"
tjära xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
det kan göras ensamt för att konvertera .deb. .tar.gz?