[Kako] Izraditi Arch Linux softverske pakete i derivate

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


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

      jamin samuel dijo

    Vrlo dobro …

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

    Kao na primjer poznati menadžer preuzimanja Miponija ??

         odgovarajuće dijo

      Koliko znam da to nije moguće, imajte na umu da su .exe binarni programi, a ne izvorni kod. Ali postoji JDownloader.

           Oni su Link dijo

        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.

         v3on dijo

      netko koristi linux i propušta Myponi ... jijijijiji

      jDownloader je u javi i svima je dobro poznato da java uzrokuje rak pluća ...

      mliječno28 dijo

    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.

      MSX dijo

    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.

      Truleži87 dijo

    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

         MSX dijo

      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 🙂

      hypersayan_x dijo

    za razliku od dobro poznatog .deb Debiana / Ubuntu / Linux Mint / itd. što je nered

    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.

      hakloper775 dijo

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

    pozdravi

      Carlos dijo

    Mislim da bi mi ovo poslužilo prije nekog vremena kada sam prenio svoj prvi PKGBUILD na AUR 🙂

      klerafel dijo

    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?

         Oni su Link dijo

      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/

           Rodrigo Moreno dijo

        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?