Jedna z věcí, která se mi na Arch Linuxu a jeho derivátech líbí nejvíce, je obrovská lehkost vytvořit balíčky, které se později nainstalují do systému, na rozdíl od známých deb systému Debian / Ubuntu / Linux Mint / atd., což je chaos (a pokud se jedná o knihovny, neříkám vám to).
Základní šablona by byla tato:
# Maintainer:
pkgname=
pkgver=
pkgrel=
pkgdesc=
arch=()
url=
license=()
groups=()
depends=()
makedepends=()
source=()
md5sums=()
build() {
...
}
package() {
...
}
Nyní vysvětlím každý parametr:
- # Správce: V něm je uveden název správce balíčku
- název balíku: Název balíčku. Může obsahovat pouze písmena, číslice, -, _ a +
- pkver: verze balíčku. pe 1.0.0
- pkgrel: přezkoumání programu nebo balíčku. pe 1
- pkgdesc: popis balíčku.
- oblouk: architektura programu: může být libovolná (pro všechny), i686 a x86_64, libovolná pro balíčky, které nevyžadují kompilaci, jako jsou programy bash nebo python. Pokud je to program, který to potřebuje (například programy v C nebo C ++), měli byste označit i686, pokud je to pro 32 bitů, nebo x86_64 pro 64 bitů. Obecně platí, že pokud je kompatibilní s oběma, je nastaveno (i686, x86_64)
- url: adresa URL oficiální stránky programu. Je vhodné to vyjádřit.
- Licence: licenci k programu. např. GPL3
- skupiny: skupiny, do kterých balíček patří. groups = ('system')
- závisí: v něm označíme balíčky, které jsou potřebné pro spuštění programu. pependens = ('python2' 'pygtk')
- záleží na: závislosti, které jsou vyžadovány pouze pro kompilaci balíčku. Pokud má být kód stažen ze správce verzí, je vhodné jej zadat. pe: makedepends = ('git')
- zdroj: v něm označíme soubory potřebné pro vytvoření balíčku. Obecně platí, že je to adresa URL balíčku, který obsahuje kód, opravu, soubor .desktopt, ikony atd. pe: source = (pacsyu.desktop)
- md5 součty: Zde jsou součty MD5 souborů označených ve zdroji. Chcete-li vědět, které z nich spouštíme z terminálu ve složce, kde je PKGBUILD (po napsání cesty k souboru ve zdroji) makepkg -g a částky se objeví na obrazovce.
Je také možné použít jiné součty jako sh1. - stavět: do této funkce vložíme příkazy potřebné k provedení kompilace softwaru. Pokud není nutné kompilovat, je nutná pouze následující funkce)
- balíček: v této další funkci budou spuštěny instalační příkazy programu. Například pokud zde kompilujeme C kód, make install by šel.
A na závěr musíme pouze popravit makepkg k ověření, že je balíček vygenerován.
Jak vidíte, je to pro nás obtížné. Pak vám nechám několik dalších parametrů makepkg:
- -já: Pokyn makepkg na instalaci balíčku po jeho vytvoření.
- -s: Nainstalujte závislosti balíčku, pokud jsou v úložištích.
- -F: Pokud již existuje balíček s tímto názvem, verzí a revizí s tímto parametrem, řekneme vám, abyste jej přepsali.
- -C: Po dokončení vyčistěte pracovní složky (bal. A zdroj).
- -A: Znovu zabalte balíček, aniž byste museli překompilovat.
Doporučuji vidět více souborů PKGBUILD, abyste viděli více příkladů, proveďte příkaz makepkg -h kromě zobrazení souboru můžete zobrazit i ostatní parametry programu oficiální dokumentace makepkg na Arch Linux Wiki co najdete zde
Velmi dobře …
Můžete vytvořit balíček .exe pro správu (kompilaci) s balíčkem Arch?
Jako například slavný správce stahování mypony ??
Pokud vím, není to možné, pamatujte, že .exe jsou binární soubory a nikoli zdrojový kód. Ale existuje JDownloader.
Jak říkáte, nemůžete znovu zkompilovat exe, protože je to binární kód.
Můžete vytvořit balíček, který jej nainstaluje a provede pomocí Wine, stejně jako balíček v AUR známého P2P programu Ares.
někdo používá linux a chybí mu Myponi… jijijijiji
jDownloader je v java a je dobře známo všem, že java způsobuje rakovinu plic ...
zajímavé, museli bychom testovat balíčky Myslím, že budu mít sklon dělat ten od qbittorrent hahaha, který již existuje v yaourt, ale mít svou vlastní verzi nebude špatné testovat, díky za informace, pozdravy.
Dobrý vstup, +1
Chtěl bych dodat, že je také snazší je vytvořit a udržovat než Gentoo ebuilds!
Pokud jde o Debian, myslím si, že tato distribuce by enormně zvýšila svůj handicap pouhou modernizací nebo migrací na modernější balíček a systém správy balíčků, nevím, kdy bude poslední aktualizace sady dpkg / apt, ale koncept by už měl mít snadno 15 let a pravdou je, že dnes je anachronický.
Děkuji mnohokrát, trochu jsem to hledal na wiki a nerozuměl jsem struktuře (chtěl jsem aktualizovat PlayonLinux), ale přesto jsem to vzdal ... jsou věci, ve kterých bych chtěl mít asistenta nebo něco podobného (nestřílejte mě), ale přesto ... při absenci nástrojů v průběhu času uvidím, jestli nějaké vytvořím
Díky tvému průvodci jsem začal vytvářet Zeyinu PKGBUILD (http://web.psung.name/zeya/), jakmile to dokončím, nahraji to na AUR 🙂
Naprosto souhlasím, před chvílí jsem se pokusil vytvořit balíček pro Ubuntu a bylo pro mě nemožné najít srozumitelné informace o tom, jak jej vytvořit, nakonec jsem to vzdal a zhruba nainstaloval program.
Stejný program pro Archa mi dal balíček dohromady méně než 5 minut.
A nejsem si jistý, ale myslím, že RPM je o něco snazší než DEB, ale těžší než Arch.
Velmi dobré a snadné a pokud jde o .deb, není to tak těžké, stejně jako pro iOS
pozdravy
Myslím, že by mi to před nějakou dobou posloužilo, když jsem nahrál svůj první PKGBUILD na AUR 🙂
Může mi někdo vysvětlit, o co jde, jsem nový a nevím, jestli mi to pomůže nainstalovat balíček .deb, ale lokálně v manjaro, přesněji řečeno hře. Ano, funguje to?
Právě jsem napsal další článek o tom, jak vytvořit balíčky pro arch / manjaro z balíčků .deb
https://blog.desdelinux.net/archlinux-crear-paquetes-multiplataforma-y-desde-paquetes-deb/
Ano, už jsem to viděl, ale jsem velmi novell a nechápu, jestli to není jen tento řádek
cd "$ {srcdir} /"
tar xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
co máš za sebou
if [«$ {CARCH}» = 'x86_64 ′]; pak
ARCH = 'amd64'
md5sums=(‘192a0a222893d59d95f00c34f3c8a674’)
závisí = ('openal' 'lib32-openal')
elif ["$ {CARCH}" = 'i686 ′]; pak
ARCH = 'i386'
md5sums=(‘047c670443124193c5cc3dd54da99925’)
závisí = ('otevřený')
fi
source = ("http://www.unaurl.com/files/$ trackmaster. $ ARCH.deb")
Nerozumím tomu, vypadá to velmi komplexně, jsou to společné kroky nebo první část
cd "$ {srcdir} /"
tar xvzf data.tar.gz -C.
cp -r usr $ {pkgdir}
lze převést sám .deb. .tar.gz?