[Howto] Generirajte Arch Linux softverske pakete i derivate

Jedna od stvari koje mi se najviše sviđaju kod Arch Linuxa i njegovih derivata je ogromna lakoća da kreirate pakete koji će se zatim instalirati na sistem, za razliku od onoga što se dešava sa poznatim .deb iz Debian/Ubuntu/Linux Mint/etc što je haos (a da li su to biblioteke neću vam ni reći).

Osnovni šablon bi bio ovaj:

# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()

build() {
...
}
package() {
...
}

Sada ću objasniti svaki parametar:

  • #Maintainer: Sadrži ime održavaoca paketa.
  • ime paketa: Naziv paketa. Može sadržavati samo slova, brojeve, -, _ i +
  • pkver: verzija 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 programi u bash-u ili python-u. Ako se radi o programu kojem je to potrebno (na primjer programi u C ili C++), i686 mora biti naznačeno ako je za 32 bita ili x86_64 za 64 bita. Kao opšte pravilo, ako je kompatibilan sa oba, piše (i686, x86_64)
  • url: url do službene stranice programa. Preporučljivo je staviti.
  • licenca: licencu programa. npr. GPL3
  • grupe: grupe kojima paket pripada. grupe=('sistem')
  • zavisi: U njemu označavamo pakete koji su potrebni za izvršavanje programa. npr. zavisi=('python2' 'pygtk')
  • zavisi: zavisnosti koje su potrebne samo za kompajliranje paketa. Ako će kod biti preuzet iz menadžera verzija, preporučljivo je da ga stavite tamo. npr.: makedepends=('git')
  • Izvor: U njemu navodimo datoteke potrebne za kreiranje paketa. Kao opšte pravilo, to je url paketa koji sadrži kod, zakrpu, .desktopt datoteku, ikone itd. pe: izvor=(pacsyu.desktop)
  • md5sums: Evo md5 sume datoteka navedenih u izvoru. Da saznamo koje pokrećemo sa terminala u fascikli u kojoj se nalazi PKGBUILD (napisavši putanje datoteke u izvorni kod) makepkg -g a zbroji će se pojaviti na ekranu.
    Također je moguće koristiti druge sume kao što je sh1.
  • izgraditi: U ovu funkciju ćemo staviti naredbe potrebne za nastavak kompajliranja softvera. Ako nije potrebno kompajlirati, potrebna je samo sljedeća funkcija)
  • paket: u ovoj drugoj funkciji će ići naredbe za instalaciju programa. Na primjer, ako kompajliramo C kod, make install bi išla ovdje.

A da završimo samo moramo izvršiti makepkg da provjerite da li je paket generiran.
Kao što vidite, nama je teško. U nastavku vam ostavljam neke dodatne parametre makepkg:

  • -Yo: Kaže makepkg da instalira paket nakon što je kreiran.
  • -s: Instalirajte ovisnosti paketa ako su u spremištima.
  • -F: Ako već postoji paket sa tim imenom, verzijom i revizijom sa ovim parametrom, kažemo vam da ga prepišete.
  • -c: Očistite radne fascikle (paket i izvor) kada završite.
  • -O: Prepakuje paket bez ponovnog kompajliranja.

Preporučujem da vidite više PKGBUILD datoteka da vidite više primjera, pokrenite naredbu makepkg -h da vidite ostale parametre programa, osim što vidite zvanična makepkg dokumentacija na Arch Linux Wiki šta možete naći ovdje


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   jamin samuel rekao je

    Veoma dobro …

    Može li se .exe paketom upravljati (kompajlirati) u Arch paket?

    Kao na primjer poznati menadžer preuzimanja mypony ??

    1.    pravi rekao je

      Koliko ja znam, to nije moguće, zapamtite da su .exe binarne datoteke, a ne izvorni kod. Ali postoji JDownloader.

    2.    v3on rekao je

      Neko koristi Linux i nedostaje mu Myponi… hehehehehe

      jDownloader je u Javi, a svima je dobro poznato da java izaziva rak pluća...

  2.   milky28 rekao je

    Zanimljivo, morao bih probati pakete, mislim da ću se skloniti da radim qbittorrent jedan hahaha već postoji u yaourtu ali imati svoju verziju neće biti loše probati, hvala na informacijama, pozdrav.

  3.   MSX rekao je

    Dobar doprinos, +1
    Želim da dodam da ih je takođe lakše kreirati i održavati nego Gentoo ebuild-ove!

    Što se tiče Debiana, mislim da bi ova distribucija uvelike podigla svoj hendikep jednostavnom modernizacijom ili prelaskom na modernije pakovanje i sistem upravljanja paketima. Ne znam kada će biti zadnje ažuriranje dpkg/apt paketa, ali koncept bi lako trebao postojati 15 godina a istina je da je danas anahrono.

  4.   rots87 rekao je

    Hvala vam puno, nedavno sam to tražio na wikiju i nisam razumio strukturu (hteo sam da ažuriram PlayonLinux) ali sam ipak odustao... postoje stvari u kojima bih voleo da postoji asistent ili tako nešto (nemojte me pucati) ali svejedno... Zbog nedostatka alata, vremenom ću vidjeti da li ću napraviti.

    1.    MSX rekao je

      Zahvaljujući vašem vodiču počeo sam kreirati Zeyin PKGBUILD (http://web.psung.name/zeya/), čim ga završim postaviću ga na AUR :)

  5.   hypersayan_x rekao je

    za razliku od onoga što se dešava sa dobro poznatim .deb-om Debian/Ubuntu/Linux Mint/etc, što je haos

    U potpunosti se slažem, maloprije sam pokušao da napravim paket za Ubuntu i nije mi bilo moguće da nađem razumljive informacije kako da ga napravim, na kraju sam odustao i instalirao program sirovi.
    Isti program za Arch mi je trebalo manje od 5 minuta da sastavim paket.
    I nisam siguran, ali mislim da su RPM-ovi malo lakši od DEB-a, ali teži od Arch.

  6.   hackloper775 rekao je

    Vrlo dobro i jednostavno, a što se tiče .deb-a nije tako teško, pa to za iOS

    Saludos

  7.   Carlos rekao je

    Mislim da bi mi ovo uspjelo prije nekog vremena kada sam uploadovao svoj prvi PKGBUILD na AUR :)

  8.   clerafel rekao je

    Moze li mi neko objasniti sta je ovo, nov sam i ne znam da li ce mi ovo pomoci da instaliram .deb paket ali lokalno u manjaru, tacnije igrici. Da, radi?