Vienas iš dalykų, kurie man labiausiai patinka „Arch Linux“ ir jo dariniuose, yra nepaprastai lengva sukurti paketus, kurie vėliau bus įdiegti sistemoje, skirtingai nei žinomi deb Debian / Ubuntu / Linux Mint / etc, tai chaosas (o jei tai bibliotekos, aš jums nesakau).
Pagrindinis šablonas būtų toks:
# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()
build() {
...
}
package() {
...
}
Dabar paaiškinsiu kiekvieną parametrą:
- # Prižiūrėtojas: Į jį įrašomas pakuotės prižiūrėtojo vardas
- pkgname: Pakuotės pavadinimas. Joje gali būti tik raidės, skaičiai, -, _ ir +
- pkver: paketo versija. pe 1.0.0
- pkgrel: programos ar paketo peržiūra. pe 1
- pkgdesc: pakuotės aprašymas.
- arka: programos architektūra: ji gali būti bet kuri (visiems), i686 ir x86_64, bet kuri paketams, kuriems nereikia kompiliavimo, pvz., bash arba python programoms. Jei tai yra programa, kuriai to reikia (pvz., Programos C arba C ++), ji turėtų nurodyti „i686“, jei ji skirta 32 bitams, arba „x86_64“ - 64 bitams. Apskritai, jei jis suderinamas su abiem, jis yra nustatytas (i686, x86_64)
- URL: URL į oficialų programos puslapį. Patartina tai įdėti.
- licencija: programos licenciją. pvz., GPL3
- grupės: grupės, kurioms priklauso paketas. grupės = ('sistema')
- priklauso: jame nurodome paketus, kurie reikalingi programai vykdyti. pependens = ('python2' pygtk ')
- priklauso nuo: priklausomybės, kurios reikalingos tik paketui sudaryti. Jei kodą norite atsisiųsti iš versijų tvarkyklės, patartina jį įdėti. pe: makedepends = ('git')
- šaltinis: joje nurodome paketui sukurti reikalingus failus. Paprastai paketo URL yra kodas, pleistras, .desktopt failas, piktogramos ir kt. pe: šaltinis = (pacsyu.desktop)
- md5 sumos: čia yra šaltinyje nurodytų failų md5 sumos. Norėdami sužinoti, kuriuos paleidžiame iš terminalo aplanke, kuriame yra PKGBUILD (įrašę failo kelius į šaltinį) makepkg -g ir sumos pasirodys ekrane.
Taip pat galima naudoti kitas sumas, tokias kaip sh1. - statyti: į šią funkciją įdėsime komandos, reikalingos tęsti programinės įrangos sudarymą. Jei nebūtina sudaryti, būtina tik ši funkcija)
- paketas: šioje kitoje funkcijoje bus vykdomos programos diegimo komandos. Pvz., Jei mes čia kompiliuojame C kodą, tai būtų „make install“.
Norėdami užbaigti, mes tiesiog turime įvykdyti makepkg patikrinti, ar sugeneruotas paketas.
Kaip matote, mums sunku. Tada paliksiu jums keletą papildomų parametrų makepkg:
- -aš: Nurodo makepkg įdiegti paketą po jo sukūrimo.
- -s: Įdiekite paketo priklausomybes, jei jos yra saugyklose.
- -F: Jei jau yra paketas su tokiu pavadinimu, versija ir pakeitimas su šiuo parametru, liepiame jį perrašyti.
- -c: Baigę išvalykite darbinius aplankus (pkg ir šaltinį).
- -A: Pakuokite pakuotę iš naujo nekompiliuodami.
Rekomenduoju pamatyti daugiau PKGBUILD failų, kad pamatytumėte daugiau pavyzdžių, vykdykite komandą makepkg -h Norėdami pamatyti likusius programos parametrus, be to, pamatysite „makepkg“ oficiali dokumentacija „Arch Linux Wiki“ ką gali rasti čia
14 komentarai, palikite savo
Labai gerai …
Ar .exe paketą galima tvarkyti (kompiliuoti) į Arch paketą?
Kaip, pavyzdžiui, garsusis atsisiuntimų tvarkyklė Mipony ??
Kiek žinau, tai neįmanoma, atminkite, kad .exe yra dvejetainiai failai, o ne šaltinio kodas. Bet yra „JDownloader“.
Kaip sakote, negalima exe kompiliuoti, nes tai yra dvejetainis kodas.
Galima sukurti paketą, kuris jį įdiegia ir vykdo su „Wine“, kaip ir žinomos P2P programos „Ares“ AUR paketas.
kažkas naudojasi „Linux“ ir pasiilgsta „Myponi“ ... jijijijiji
„jDownloader“ yra java, ir visiems yra gerai žinoma, kad java sukelia vėžį plaučiuose ...
įdomu, mes turėtume išbandyti paketus, manau, kad būsiu linkęs padaryti tą, kuris yra iš qbittorrent hahaha jau egzistuoja yaourt, bet turėti savo versiją nebus blogai išbandyti, ačiū už informaciją, sveikinimus.
Geras indėlis, +1
Noriu pridurti, kad juos taip pat lengviau sukurti ir prižiūrėti nei „Gentoo“ el. Pastatus!
Kalbant apie „Debian“, manau, kad šis platinimas nepaprastai padidintų savo trūkumus, tik modernizuodamas arba pereidamas prie modernesnės paketų ir paketų tvarkymo sistemos, nežinau, kada bus paskutinis „dpkg / apt“ rinkinio atnaujinimas, tačiau koncepcija jau turėjo lengvai atsirasti 15 metų ir tiesa ta, kad šiandien yra anachronistinė.
Labai ačiū, visai neseniai ieškojau to wiki ir dar nesupratau struktūros (norėjau atnaujinti „PlayonLinux“), bet vis tiek atsisakiau ... yra dalykų, kuriuose norėčiau turėti padėjėją ar panašiai (nešaudyk manęs), bet vis tiek ... jei laikui bėgant nėra įrankių, aš pamatysiu, ar aš juos sukursiu
Jūsų vadovo dėka aš pradėjau kurti Zeya PKGBUILD (http://web.psung.name/zeya/), kai tik baigsiu, įkeliu į AUR 🙂
Visiškai sutinku, prieš kurį laiką bandžiau sukurti „Ubuntu“ paketą ir man buvo neįmanoma rasti suprantamos informacijos, kaip jį sukurti, galų gale atsisakiau ir apytiksliai įdiegiau programą.
Ta pati programa „Arch“ užtruko mažiau nei 5 minutes, kad susidėčiau paketą.
Aš nesu tikras, bet manau, kad RPM yra šiek tiek lengviau atlikti nei DEB, bet sunkiau nei Arch.
Labai gerai ir lengva. Kalbant apie .deb, tai nėra taip sunku, na ir „iOS“
saludos
Manau, kad tai būtų buvę man naudinga prieš kurį laiką, kai įkėliau savo pirmąjį PKGBUILD į AUR 🙂
Ar kas nors gali man paaiškinti, kas tai yra, aš esu naujas ir nežinau, ar tai man padeda įdiegti .deb paketą, bet vietoje manjaro, tiksliau žaidimą. Taip, tai veikia?
Aš ką tik parašiau dar vieną straipsnį apie tai, kaip sukurti paketus arch / manjaro iš .deb paketų
https://blog.desdelinux.net/archlinux-crear-paquetes-multiplataforma-y-desde-paquetes-deb/
Taip, aš jau mačiau, bet esu labai romanas ir nesuprantu, ar ne tik ši linija
CD "$ {srcdir} /"
derva xvzf duomenys.tar.gz -C.
cp -r usr $ {pkgdir}
ką tu už nugaros
jei [«$ {CARCH}» = 'x86_64 ′]; tada
ARCH = 'amd64'
md5sums=(‘192a0a222893d59d95f00c34f3c8a674’)
priklauso = ('openal' 'lib32-openal')
elif ["$ {CARCH}" = 'i686 ′]; tada
ARCH = 'i386'
md5sums=(‘047c670443124193c5cc3dd54da99925’)
priklauso = ('atviras')
fi
source = ("http://www.unaurl.com/files/$ trackmaster. $ ARCH.deb")
Aš to nesuprantu, atrodo labai kompleksiškai, tai yra bendri žingsniai ar pirmoji dalis
CD "$ {srcdir} /"
derva xvzf duomenys.tar.gz -C.
cp -r usr $ {pkgdir}
tai galima padaryti atskirai norint konvertuoti .deb. .tar.gz?