Arch build system

Menu

PORTÁL

O Linuxe

Eshop

Anketa

Používate twitter? Ak áno, ktorého klienta používate?

(150 ~ 91%)
(0 ~ 0%)
(1 ~ 1%)
(0 ~ 0%)
(13 ~ 8%)
Spolu: 164
Komentárov: 17 Zobraziť ankety

PODPORUJEME

SKOSI.org

LinuxEXPO

ODPORÚČAME

PODPORTE NÁS

Ak sa vám táto stránka páči, môžete nás podporiť tak, že si na vaše stránky umiestnite tento banner.
Banner LinuxOS.sk

Štýl

Vyhľadávanie

Databáza znalostí

Prihlásenie




Registrácia
Neprihlásený

Správy

Archív správ
19.03 12:53 |  dodoedo
Po prvý krát v dejinách projektu Debian GNU/Linux na čelo projektu kandiduje žena. Pani Margarita Manterola je z Argentíny, kde na univerzite vyučuje programovanie a je vývojárkou softvéru, pričom používa prevážne programovací jazyk Python. Nový líder projektu bude známy v apríli tohoto roku.
Komentárov: 6
19.03 12:44 |  dodoedo
Open-source projekt opentaps uvoľnil v týchto dňoch novú verziu softvérového balíka podnikových aplikácií pre systémy Open Source ERP + CRM - opentaps 1.4 (stiahnutie aplikačných balíkov).
Pridať komentár
19.03 09:51 |  dodoedo
V Belgicku existuje Ministerstvo na zjednodušenie administratívy (!). Jeho šéf, minister Vincent Van Quickenborne sa vyjadril, v otváracej reči na seminári o slobodnom softvéri pre orgány Verejnej správy o slobodnom softvéri (open-source) ako o účinnom nástroji na zastavenie monopolizácie, voľnom zdielaní vedomostí a zvyšovaní sociálnej inovácie. A samozrejme, prudko znižuje finančné náklady na softvér, čím sa stáva príkladom aj pre Slovensko.
Komentárov: 7
18.03 11:58 |  lesny_skriatok
V dňoch 23. - 24. apríla 2010 sa uskutoční konferencia Openmobility v Zlíne (ČR) venovaná otvoreným mobilným platformám a technológiám. Pre širokú verejnosť je určená sobota 24. apríla 2010. Konferenciu organizuje česká komunita Openmoko v spolupráci FAI UTB. Viac na mobility.openmoko.cz.
Pridať komentár
18.03 11:34 |  dodoedo
Open-source projekt Parrot ohlásil vydanie najnovšej verzie procesového virtuálneho stroja Parrot 2.2.0. Virtuálny stroj Parrot používa JIT kompiláciu a slúži na čo najefektívnejšie kompilovanie a vykonanie bytekódu pre dynamické jazyky. Stiahnutie balíčkov a zdrojového kódu.
Pridať komentár
17.03 12:34 |  dodoedo
Open-source projekt MonoDroid od spoločnosti Novell umožní vývojárom prispôsobenie .NET aplikácií pre fungovanie v Google Android mobiloch. Projekt MonoDroid oznámil prvú ukážku takéhoto kódu na koniec tohto leta.
Pridať komentár
17.03 12:12 |  dodoedo
Nedávne zverejnenie vývoja cenzurovaného severokórejského Linuxu Red Star a vytvorenie čínskeho superpočítača Dawning 6000 z domácich procesorov Loongson (MIPS) pod Linuxom, podľa článku na linuxinsider.com spustilo prezentáciu názorov, v ktorých sa dokonca špekuluje o krajinách, využívajúcich FOSS/Open Source (Linux) ako o krajinách, ktoré sú nepriateľom štátu (USA). Napríklad v správe Medzinárodnej aliancie duševného vlastníctva (IIPA) sú dané obavy, že otvorenosť zdrojového kódu umožňuje takýmto totalitným režimom, bez väčších výdavkov okamžité použitie vyspelých technológií, čomu treba venovať zvýšenú ostrahu. Uvádza príklad vytvorenia čínskych procesorov Loongson, umožňujúcich obídenie Intel/AMD patentov. Loongson totiž používa MIPS-architektúru, ktorú Linux využíva dokonale a od základu.
Pridať komentár
17.03 08:20 |  Andrej Eliáš
Nedávno bol spustený podporný web k projektu ovládačov na zariadenia Flarion pre Linux (PCMCIA aj USB). Na webe nájdete návody na kompiláciu a inštaláciu a taktiež novinku: applet pre GNOME v ktorom vidíte stav pripojenia, silu signálu a podobne. Pre spätnú väzbu od používateľov je k dispozícii fórum s overovaním cez google account alebo OpenID.
Pridať komentár
15.03 09:14 |  eMDi
V dňoch 1.7. 2010 a 4.7.2010 sa bude konať v Žiline konferencia "Otvorený softvér vo vzdelávaní, výskume a v IT riešeniach". Viac informácií získate na stránkach SOS pre školy.
Pridať komentár
14.03 20:55 |  csantibo
Nová beta-verzia linuxovej distribúcie PCLinuxOS-2010.beta1 s linuxovým jadrom 2.6.32.8 a s grafickým prostredím KDE 4.4.1 je k dispozícii na http://pclinuxos.com
Pridať komentár
Arch build system

Článok

Arch build system

21.01.2010 21:50 | Články Prečítané : 1745 x
V tomto článku sa pokúsim predstaviť jednu zaujímavú funkciu stále populárnejšej linuxovej distribúcie Arch Linux. Táto funkcia zbližuje Arch Linux a niektoré linuxové distribucie a BSD systémy, ktoré používajú systém portov pre kompiláciu a inštaláciu programov. Jej názov je Arch build system, skrátene ABS.

Systém portov a Arch Linux

Systém portov umožňuje používatelovi stiahnuť zdrojové súbory, rozbaliť ich, prípadne aj opatchovať, následne ich skompilovať a vytvoriť z nich balíček pre ľubovoľný program, ktorý sa v systéme portov nachádza.
Takže výsledným produktom bude klasický inštalačný balíček pre Arch Linux. Celý systém sa skladá z jednotlivých portov, čo je vlastne iba nejaký adresár na lokálnom počítači pomenovaný podľa názvu programu. Každý takýto adresár obsahuje PKGBUILD a install súbor. PKGBUILD-om sa určuje odkiaľ sa zdrojové súbory programu stiahnu, kde sa rozbalia a ako sa následne skompilujú. Install súbor, pomenovaný podľa šablóny názov_programu.install, obsahuje definíciu funkcií, ktoré sa vykonajú pri inštalácii, upgrade a odinštalovaní výsledného balíčku. Port môže obsahovať aj jeden alebo viac súborov, ktoré majú v názve prefix patch. Takýto súbor obsahuje potom patche, ktoré sa aplikujú na rozbalený archív zdrojákov.
Ako príklad si môžeme zobrať napríklad IM klienta psi:
$ ls -l /var/abs/extra/psi
celkom 12
-rw-r--r-- 1 root root 662 jan 17 06:10 archlinux.patch
-rw-r--r-- 1 root root 730 jan 17 06:10 PKGBUILD
-rw-r--r-- 1 root root 146 jan 17 06:10 psi.install

V tomto prípade obsahuje port pre IM klienta psi povinný PKGBUILD s install súborom psi.install.
Taktiež obsahuje patch, ktorý upraví zdrojáky pre potreby samotej distribúcie Arch Linux.

Výhody systému portov v Archu

  • možnosť prekompilovať program z ľubovoľného dôvodu
  • vytvoriť si vlastný balíček programu zo zdrojákov, pre ktorý ešte neexistuje binárna verzia
  • upraviť si zdrojáky podľa vlastných želaní
  • prebuildovať celý systém, ktorý bude optimalizovaný pre váš počitač a tak nebudete musieť strácať
    výkon, ktorý s binárnymi balíčkami strácate
  • prekonfigurovať a prebuildovať si vlastné jadro
  • prebuildovať moduly jadra
  • jednoducho skompilovať a nainštalovať najnovšiu, staršiu, beta alebo vývojovú verziu Arch balíčka
    iba upravením PKGBUILD-u.

Arch Build System (ABS)

Systém portov v Arch Linuxu zastrešuje Arch Build System, ABS. ABS je séria nástrojov, ktoré sa používajú pri získavaní PKGBUILD súborov (a tým aj pre vytváranie portov), z ktorých sa potom vytvoria binárne balíčky pre Arch. Jednotlivé porty sa zvyčajne nachádzajú v adresáry /var/abs, čo je tzv. ABS strom.
Tento adresár má vlastnú štruktúru a to [repozitár]/[názov balíčka]. [repozitár] je presne to isté ako repozitár pre binárne verzie balíčkov. [názov balíčka] je názov aplikácie, pre ktorú si chceme vytvoriť vlastný balíček. Tak napríklad, PKGBUILD pre už spomínaný IM klient psi možno nájsť v adresáry:
/var/abs/extra/psi

Inštalácia ABS

Aby sme ABS mohli používať, tak si musíme nainštalovať aplikáciu abs. To urobíme klasickým spôsobom:
# pacman -S abs

Pre vytváranie vlastných balíčkov je nutné ešte doinštalovať aj balíček base-devel:
# pacman -S base-devel

Po nainštalovaní potrebných balíčkov môžeme ABS ešte nakonfigurovať. Nie je to ale potrebné, keďže
východisková konfigurácia je postačujúca. Konfiguračný súbor pre ABS je /etc/abs.conf. Najzaujímavejšou
voľbou v tomto konfiguračnom súbore je určenie repozitárov, pre ktoré sa vytvorí systém portov:
REPOS=(core extra community testing)

Jednotlivé repozitáre sú oddelené medzerou. Ak pred názov repozitára pridáme výkričník (!), tak tento
repozitár sa bude ignorovať a nebude sa pre neho inštalovať systém portov, prípadne sa nebude synchronizovať
pri opätovnom spustení utility abs.
Tak napríklad, ak by sme chceli vynechať repozitár testing, tak premenná REPOS v /etc/abs.conf by mala
takýto obsah:
REPOS=(core extra community !testing)

Pozor, ak si naozaj neželáme vytvárať systém portov (alebo jeho synchronizáciu) pre určitý repozitár, tak
nestací ho iba zmazať zo zoznamu, ale musíme ho nechať v zozname a pridať len výkričník. Inak abs bude aj
naďalej synchronizovať takýto neželaný repozitár.
Po prípadnej konfigurácii ABS systému, môžeme prejsť na samotnú prvotnú inicializáciu nášej lokálnej kópie
systemú portov, ABS stromu. To sa vykoná spustením utility abs s administrátorskými (root) právami:
# abs

Tento príkaz vytvorý lokálnu kópiu ABS stromu v adresáry /var/abs. Ak abs budeme spúšťať ešte raz,
tak už sa nebude celý strom sťahovať nanovo, ale iba sa zosynchronizuje a updatnú sa len tie subčasti stromu,
ktoré sa od posledného spustenia abs zmenili v centrálnom repozitáry.
Utilita abs má len tri parametre:
-h, --help zobrazí nápovedu pre túto utilitu
-V, --version zobrazi verziu abs
-t, --tarball s touto voľbou sa bude ABS strom synchronizovať pomocou tarballov z mirroru,
ktorý je definovaný pre pacman.

Potom, čo máme ABS strom, teda systém portov nainštalovaný, možeme ho začať používať. Pred samotným vytváraním
vlastných balíčkov pomocou ABS je vhodné ešte upraviť konfiguračný súbor pre makepkg, čo je utilita pre
vytváranie balíčkov, viac man 8 makepkg. Konfiguračný súbor sa nazýva /etc/makepkg.conf. V tomto konfiguračnom
súbore si nastavíme potrebné optimalizačné flagy pre kompilátor, host systém, architektúru atď. Viac man 5 makepkg.conf.

Používanie ABS

Samotné použitie ABS je veľmi jednoduché. Je vhodné si vytvoriť napríklad v domovskom adresáry bežného používateľa
nejaký pracovný adresár pre ABS. Je to z toho dôvodu, že akákoľvek práca v pôvodnom ABS strome vo /var/abs sa zmaže
pri každej synchronizácii ABS stromu. Takže vytvorme si náš pracovný adresár:
$ mkdir -p ~/abs

Práca v našom domovskom adresáry má aj tú výhodu, že nemusíme pracovať ako root. Administrátorské právomoci budeme
potrebovať iba pri inštalácii už vytvoreného balíčka. Pre náš príklad práce s ABS si vytvoríme nový balíček pre
IM klienta psi. Predstavme si (čisto pre fakultatívne účely), že sa nám nepáči kontrola pravopisu v už nainštalovom
psi. Aby sme odstránili podporu pre kontrolu pravopisu, musíme upraviť súbor PKGBUILD v ~/abs/psi:
$ cd ~/abs/psi
$ vim PKGBUILD

Upravíme riadok, kde sa volá skript configure a pridáme mu parameter –disable-aspell:
./configure --prefix=/usr --disable-bundled-qca --disable-aspell || return 1

Pre vytváranie balíčkov sa používa utilita makepkg, viac man 8 makepkg. Takže ako ďaľši krok bude
spustenie tejto utility:
$ makepkg -s

Parameter -s zabezpečí, že pri inštalácii novovytvoreného balíčka sa pacman pokúsi doinštalovať aj zavíslosti,
na ktorých balíček závísi. Spustenie makepkg zabezpečí všetky kroky pre vytvorenie nového balíčka: stiahnutie
zdrojákov, kontrola ich checksumu, ich rozbalenie a prípadné aplikovanie patchov, kontrola závislostí pre
kompiláciu a závislostí pre naištalovanie balíčka, nasleduje kompilácia a vytvorenie binárnej verzie balíčka.
Ak všetko prebehne v poriadku, tak v aktuálnom adresáry sa objaví nový balíček. Jeho názov v tomto prípade
bude psi-0.14-1-x86_64.pkg.tar.gz. Takýto balíček stačí už len nainštalovať pomocou pacmana:
# pacman -U psi-0.14-1-x86_64.pkg.tar.gz

Inštalujeme samozrejme s administrátorskými právami, teda pod root účtom.
Základnú prácu s ABS v Arch Linuxe máme predstavenú. Dúfam, že sa mi podarilo aspoň trochu ozrejmiť ABS a
jeho využitie. Prípadne námietky, návrhy, ďaľšie tipy prosím uveďte do kometárov.


PDF verzia
Pridať komentár
Počet príspevkov : 1313
dopad
 
22.01.2010 02:24  |  Link
velmi pekny clanok o mojej srdcovej distribucii, ale z textu som sa nedozvedel, ze aky ma dopad pouzivanie ABS v Archovi, kedze vieme, ze Arch je skor zalozeny na najnovsich verziach a aktualnych balickov, kedy sa velakrat stane, ze system proste bude nestabilny. Ak to chapem dobre, tak je to vlastne stare zname podobne PKBUILDOM a la Gentoo a BSD portom. Takze da sa pouzivat aj takto vytvoreny soft a aj prostrednictvom ABS a pacman ho vidi?
Počet príspevkov : 5175
Re: dopad
 Distribúcia : Arch, Debian
22.01.2010 09:08  |  Link
ano, pomocou ABS si vytvoris klasicky balicek, taky ktory instaluje aj pacman. ak sa objavi novsia verzia toho balicka v repozitoroch pacmana, bude ABS verzia balicka upgradnuta na tuto. takze si budes musiet znova skompilovat novu verziu pomocu ABS a nainstalovat ju. da sa to obist s tym sposobom, ze pred zacatim vytvarania noveho balicka pomocou ABS, prepises v PKGBUILDe verziu na nejaku ovela vyssiu a pacman pri upgrade nebude tento balicek upgradovat, len bude vykecavat, ze je nainstalovana novsia verzia balicka ako sa nachadza v jeho repozitary. samozrejme toto riesenie nejsie aj riziko nestability problemu. zatial som to pouzil len raz, pri kniznici libnova a vsetko v pohode slapalo.
Počet príspevkov : 1313
Re: dopad
 
22.01.2010 11:12  |  Link
ten sposob sa mi paci, vyskusam v buducnosti urcite. Arch, *BSD sa dost priblizuju k sebe
Počet príspevkov : 5175
Re: dopad
 Distribúcia : Arch, Debian
22.01.2010 11:42  |  Link
mozno som aj na nejake veci zabudol (ale hlavne veci su tam), je to moj prvy clanok.
Počet príspevkov : 164
Re: dopad
 Distribúcia : Arch, Ubuntu
22.01.2010 18:10  |  Link
Nie je lepsi sposob, ako vymyslanie vysokej verzie, pridat balicek do IgnorePkg v pacman.conf?
Of All The Things I've Lost, I Miss My Mind The Most.
Počet príspevkov : 219
Nechapem
 Distribúcia : Windows 7 & Arch Linux (XFCE)
22.01.2010 18:37  |  Link
Stale nechapem jednej veci...

Ako resp. kde sa nastavuje ake vlastnosti ma ten balicek mat ? Lebo vlastne ak tomu spravne rozumiem, tak pomocou ABS si skompilujem balicek presne pre moj pc. A arch akoze uz vie aky mam pc??? alebo niekde sam nastavujem ze ktore veci povolit a ktore zakazat? Dakujem
Ece pece, taký veľký čert s tebou mece :P
Počet príspevkov : 2117
Re: Nechapem
 Distribúcia : Archlinux XFCE
22.01.2010 20:55  |  Link
Veď je to v článku napísané, že sa to nastavuje v súbore /etc/makepkg.conf
Čo ťa nezabije, to ťa posilní | Leták na propagáciu jabbera v pdf | www.mikroprocesory.sk
 xenol
Re: Nechapem
 
23.01.2010 14:24  |  Link
ano, ale on sa asi pyta na obdobu USE flagov z gentoo. ak viete niekto o niecom, dajte vediet, lebo po 3 rokoch pouzivania archu som zatial neprisiel na nic take. inac dobra praca, borgcube
 xenol
Re: Nechapem
 
23.01.2010 14:27  |  Link
este by som upovedomil ludi na moznost "makeworld", ktory vlastne je akysi wrapper nad makepkg a dokaze to skompilovat cele repozitare balickov
Počet príspevkov : 5175
Re: Nechapem
 Distribúcia : Arch, Debian
23.01.2010 19:24  |  Link
je to tam spominane, mozno nejasne. je nutne si upravit PKGBUILD, odstranit zavislosti a upravit volanie skriput configure, pripadne niecoho ineho, co sa vyhodnocuje pri kompilacii.
Počet príspevkov : 402
Systém portov?
 Distribúcia : Arch
25.01.2010 13:02  |  Link
nazov: "Systém portov" ma dost zmiatol. Teraz pozeram ze ten nazov asi pochadza z BSD. Inac dobry clanok. PKGBUILD mohol byt trosku hlbsie vysvetleny. Mozno stacilo zahrnut cely PKGBUILD do clanku
Why did Father give these humans free will? Now they're all confused.
 maro
makepkg
 
30.01.2010 12:33  |  Link
abych se priznal, mam v tom trochu chaos ja instaluju balicky z AURu tam si najdu balicek, stahnu tarbal, rozbalim do sveho '/home/adresare' pak spustim makepkg , nainstaluju balicek a hotovo
Vubec jsem z clanku nepochopil, na co vlastne abs je, jak zjistim jaky pkgbuild muzu stahnout (kde najdu treba ten psi) je mi to stale jaksi nepochopitelne, zbytecne slozite
Počet príspevkov : 5175
Re: makepkg
 Distribúcia : Arch, Debian
31.01.2010 14:50  |  Link
v AUR mas PKGBUILDy, ktore sa nenachadzaju v oficialnych repozitaroch, kdezto abs je subor PKGBUILDov pre balicky v oficialnych repozitaroch.
abs ma rovnaku adresarovu strukturu ako repozitare, ten psi sa nachadza v repo extra. samozrejme, ak nevies co sa kde nachadza, tak existuje napr. utilita find.
 jose
adresarY??
 
14.02.2010 12:59  |  Link
omg
 Peter S.
chýba tam krok medzi
 
15.03.2010 15:27  |  Link
chýba tam krok medzi
$ mkdir -p ~/abs
a
$ cd ~/abs/psi
Skadiaľ sa v novovytvorenom adresari vzal podadresár psi s nejakým obsahom?

Štruktúra článku by možno potrebovala "vyladiť" všetko to pôsobí takým dojmom že "guláš", napríklad očíslované kroky alebo nadpisy častí a pod by určite pomohli...
Prvý komentár
LinuxOS.sk © 2004-2008 | LinuxOS.sk - Team | ISSN 1337-7639
Táto stránka je optimalizovaná pre Mozillu, Operu, Konqueror a IE