Jedna od stvari koja mi se najviše sviđa kod Arch Linuxa i njegovih izvedenica je ogromna lakoća za stvaranje paketa koji će se kasnije instalirati u sustav, za razliku od poznatih debitant Debiana / Ubuntu / Linux Mint / itd. to je kaos (a ako su knjižnice, ne kažem vam).
Osnovni predložak bio bi sljedeći:
# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()
build() {
...
}
package() {
...
}
Sada ću objasniti svaki parametar:
- # Održavanje: U njemu se stavlja ime održavatelja paketa
- ime pkg: Naziv paketa. Sadrži samo slova, brojeve, -, _ i +
- pkver: inačica paketa. pe 1.0.0
- pkgrel: pregled programa ili paketa. pe 1
- pkgdesc: opis paketa.
- luk: arhitektura programa: može biti bilo koja (za sve), i686 i x86_64, bilo koja za pakete koji ne zahtijevaju kompilaciju, kao što su bash ili python programi. Ako je to program koji to treba (na primjer, programi na C ili C ++), morate navesti i686 ako je za 32 bita ili x86_64 za 64 bita. Općenito, ako je kompatibilan s obje, postavlja se (i686, x86_64)
- url: URL na službenu stranicu programa. Preporučljivo je staviti.
- Licenca: programska licenca. npr. GPL3
- grupe: skupine kojima paket pripada. grupe = ('sustav')
- ovisi: u njemu naznačujemo pakete koji su potrebni za izvršavanje programa. pependens = ('python2' 'pygtk')
- čini ovisnim: ovisnosti koje su potrebne samo za sastavljanje paketa. Ako se kôd preuzima iz upravitelja verzija, preporučljivo je staviti ga. pe: makedepends = ('git')
- Izvor: u njemu naznačujemo datoteke potrebne za izradu paketa. Općenito je da URL paketa sadrži kôd, zakrpu, .desktopt datoteku, ikone itd. pe: izvor = (pacsyu.desktop)
- md5sume: ovdje su md5 zbrojevi datoteka naznačenih u izvoru. Da bismo znali koje pokrećemo s terminala u mapi u kojoj je PKGBUILD (napisavši staze datoteka u izvoru) makepkg -g a sume će se pojaviti na ekranu.
Također je moguće koristiti druge iznose poput sh1. - izgraditi: u ovu ćemo funkciju staviti naredbe potrebne za sastavljanje softvera. Ako kompajliranje nije potrebno, potrebna je samo sljedeća funkcija)
- paket: u ovoj drugoj funkciji ići će naredbe za instalaciju programa. Na primjer, ako ovdje kompajliramo C kod, išla bi instalacija make.
A da bismo završili, jednostavno moramo izvršiti makepkg kako bi provjerili je li paket generiran.
Kao što vidite, teško nam je. Tada vam ostavljam neke dodatne parametre od makepkg:
- -ja: Upućuje makepkg da instalira paket nakon što je stvoren.
- -s: Instalirajte ovisnosti paketa ako se nalaze u spremištima.
- -F: Ako već postoji paket s tim imenom, verzijom i revizijom s ovim parametrom, kažemo vam da ga prepišete.
- -c: Očistite radne mape (kg i izvor) nakon završetka.
- -A: Pakirajte paket bez ponovnog sastavljanja.
Preporučujem da vidite više PKGBUILD datoteka da biste vidjeli više primjera, izvršite naredbu makepkg -h da biste vidjeli ostale parametre programa, pored toga što vidite i makepkg službena dokumentacija na Arch Linux Wiki što možeš naći ovdje
Vrlo dobro …
Može li se .exe paketom upravljati (kompajlirati) u Arch paket?
Kao na primjer poznati menadžer preuzimanja Miponija ??
Koliko znam da to nije moguće, imajte na umu da su .exe binarni programi, a ne izvorni kod. Ali postoji JDownloader.
Kao što kažete, ne možete rekompajlirati exe jer je to binarni kod.
Može se stvoriti paket koji ga instalira i izvršava s Wineom, kao i paket u AUR-u dobro poznatog P2P programa Ares.
netko koristi linux i propušta Myponi ... jijijijiji
jDownloader je u javi i svima je dobro poznato da java uzrokuje rak pluća ...
zanimljivo, morali bismo testirati pakete. Mislim da ću biti sklon napraviti onaj iz qbittorrent-a hahaha već postoji u vašem vlasništvu, ali imati svoju verziju neće biti loše testirati, hvala na informacijama, pozdrav.
Dobar ulaz, +1
Želim dodati da ih je također lakše stvoriti i održavati od Gentoo ebuild-a!
Što se tiče Debiana, mislim da bi ova distribucija enormno podigla svoj hendikep samo moderniziranjem ili premještanjem na moderniji sustav upravljanja paketima i paketima, ne znam kada će biti zadnje ažuriranje dpkg / apt skupa, ali koncept bi već trebao 15 godina i istina je da je danas anahrono.
Puno vam hvala, nedavno sam ga tražio na wikiju i nisam razumio strukturu (htio sam ažurirati PlayonLinux), ali sam ipak odustao ... postoje stvari u kojima bih želio imati asistent ili nešto slično (ne pucajte u mene), ali ipak ... u nedostatku alata s vremenom ću vidjeti hoću li stvoriti bilo koji
Zahvaljujući vašem vodiču počeo sam stvarati Zeyin PKGBUILD (http://web.psung.name/zeya/), čim ga završim, prebacim ga na AUR 🙂
Potpuno se slažem, maloprije sam pokušao stvoriti paket za Ubuntu i bilo je nemoguće pronaći razumljive informacije o tome kako ga napraviti, na kraju sam odustao i grubo instalirao program.
Istom programu za Arch trebalo mi je manje od 5 minuta da sastavim paket.
I nisam siguran, ali mislim da je RPM nešto lakše napraviti nego DEB, ali teže nego Arch.
Vrlo dobro i jednostavno, a što se tiče .deb-a, to nije toliko teško, pa i za iOS
pozdravi
Mislim da bi mi ovo poslužilo prije nekog vremena kada sam prenio svoj prvi PKGBUILD na AUR 🙂
Može li mi netko objasniti što je to, ja sam nov i ne znam da li mi ovo pomaže pri instaliranju .deb paketa, ali lokalno u manjaru, točnije igri. Da, djeluje?
Upravo sam napisao drugi članak o tome kako stvoriti pakete za arch / manjaro iz .deb paketa
https://blog.desdelinux.net/archlinux-crear-paquetes-multiplataforma-y-desde-paquetes-deb/
Da, već sam je vidio, ali jako sam nov i ne razumijem je li ne samo ova linija
cd "$ {srcdir} /"
katran xvzf podaci.tar.gz -C.
cp -r usr $ {pkgdir}
što imate iza
ako [«$ {CARCH}» = 'x86_64 ′]; zatim
ARCH = 'amd64'
md5sums=(‘192a0a222893d59d95f00c34f3c8a674’)
ovisi = ('openal' 'lib32-openal')
elif ["$ {CARCH}" = 'i686 ′]; zatim
ARCH = 'i386'
md5sums=(‘047c670443124193c5cc3dd54da99925’)
ovisi = ('openal')
fi
izvor = ("http://www.unaurl.com/files/$[reference.$ARCH.deb")
Ne razumijem, izgleda vrlo složeno, to su zajednički koraci ili prvi dio
cd "$ {srcdir} /"
katran xvzf podaci.tar.gz -C.
cp -r usr $ {pkgdir}
to se može učiniti samo za pretvorbu .deb. .tar.gz?