abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Navštivte Abc obchůdek se samolepkami a přívěsky!
Rozšířené hledání
×
dnes 06:11 | Komerce
Rozrůstající se softwarová společnost v Plzni zabývající se telematikou hledá schopné vývojáře a nadšence se zájmem o OS Linux. Uplatnění zde najdou především vývojáři C++ se znalostí OS Linuxu, dále programátoři v jazyku Java nebo vývojáři se zkušenostmi s Oracle DB a Oracle ADF. Více informací o společnosti. … více »
Reklama | Komentářů: 0
24.5. 22:45 | IT novinky
NASA, která společně s Rackspace stála u zrodu projektu OpenStack, se již nadále nebude podílet na dalším vývoji této "infrastructure-as-a-service" platformy. V NASA totiž došli k závěru, že vzhledem k podpoře OpenStacku ze strany společností jako Red Hat, AT&T a HP lze jejich práci považovat za dokončenou. Posléze se NASA plánuje stáhnout i z vývoje další platformy pro cloud computing jménem Nebula.
Migilenik | Komentářů: 0
24.5. 22:45 | Upozornění
Blíží se svátek IPv6 a s ním i konference IPv6 Day. Na návštěvníky této akce čeká nejen bohatý program, ale také jedna speciální nabídka – v průběhu setkání bude možné získat se slevou 66 procent třetí vydání knihy IPv6 vysokoškolského pedagoga a publicisty Pavla Satrapy, tedy za 105 korun. … více »
Vilem Sladek | Komentářů: 5
24.5. 16:14 | Pozvánky

Přijďte si zasprintovat na Djangu, jiném Python open-source projektu, nebo jen potkat ostatní vývojáře!

… více »
Whit | Komentářů: 0
24.5. 10:20 | Nová verze
Na zrcadlech a torrentech jsou již k dispozici ISO obrazy distribuce Mageia 2. Poznámky k vydání čtěte zde.
Liborek | Komentářů: 14
23.5. 13:47 | Pozvánky

Letos v říjnu se v Praze uskuteční hned několik konferencí. Odehraje se zde nově vzniklá konference LinuxDays. K ní se přidá čtvrtý ročník openSUSE Conference, dvanáctý ročník SUSE Labs conference a aby to nebylo málo, přidá se i první ročník Gentoo miniconf. A to vše ve stejné dny a na stejném místě.

… více »
Miška | Komentářů: 7
23.5. 13:27 | Zajímavý projekt
Printerd je název nového projektu tiskového démona, který bude využívat PolicyKit a D-Bus. Projekt je zatím na úplném začátku, takže nejde o nic vhodného k produkčnímu nasazení. Mimo jiné aktuálně akceptuje jako vstup jen PDF dokumenty.
Luboš Doležel (Doli) | Komentářů: 56
23.5. 13:25 | Zajímavý software
Tři vývojáři ze společnosti Engine Yard přecházejí po dohodě mezi firmami do Red Hatu. Jde o vývojáře zabývající se rozvojem projektu JRuby. To ukazuje, že Red Hat má zájem o podporu alternativních jazyků nad OpenJDK.
Luboš Doležel (Doli) | Komentářů: 1
23.5. 13:20 | Zajímavý software
Fedora přejde na knihovnu libusbx, což je fork původní knihovny libusb. Důvodem pro fork byl zjevný nedostatek času nebo zájmu ze strany správce projektu. libusbx už teď nabízí užitečné funkce navrch.
Luboš Doležel (Doli) | Komentářů: 4
23.5. 10:29 | Nová verze
Vyšlo LLVM 3.1. Vylepšení se dotýkají podpory C++ 11 nebo architektur ARM a MIPS. Dále se můžete těšit z Python bindings nebo nástroje AddressSanitizer pro detekci chyb při práci s pamětí.
Luboš Doležel (Doli) | Komentářů: 0
Pokud by se prohlížeč Opera stal svobodným:
 (9%)
 (32%)
 (1%)
 (58%)
Celkem 252 hlasů
 Komentářů: 31, poslední včera 22:38
    Rozcestník
    Reklama
    Autoškola testy online Levný benzín

    Gentoo Linux - rýchlosť kompilácie (ccache a distcc)

    22. 2. 2006 | Matej Gagyi | Systém | 7772×

    Ako dlho sa na vašom počítači kompiluje nová verzia prehliadača Mozilla Firefox, prehrávača MPlayer alebo celé KDE, či Gnome? Pár minút? Tak to už asi poznáte programy ccache a distcc.

    ccache

    ccache dokáže zrýchliť opakované kompilovanie 5 až 10krát. Je výtvorom Andrewa Tridgella z projektu Samba, ktorý sa inšpiroval ideou projektu compilercache.

    Pred každým spustením gcc sa ccache pozrie do svojej databázy a pokúsi sa v nej nájsť skompilovaný súbor. Ak výsledok kompilácie nenájde, spustí gcc a jeho výsledok vloží do databázy. Pri vývoji aplikácií sa medzi dvoma verziami aplikácie často mení iba zopár súborov a ostatné zostávajú nedotknuté. Pri kompilovaní novšej verzie už raz kompilovaného programu má ccache veľkú šancu usporiť čas potrebný pre kompiláciu už raz skompilovaných súborov.

    Portage dokáže ccache používať automaticky. Stačí ho len nainštalovať:

    # emerge ccache

    a pridať do súboru /etc/make.conf do premennej FEATURES:

    FEATURES="ccache"

    Ak chcete ccache používať mimo Portage (v inej distribúcii alebo pri programovaní), musíte dať cestu k binárkam ccache do premennej prostredia PATH (pred cestou ku gcc):

    # export PATH=/usr/lib/ccache/bin:$PATH

    Databáza ccache bude rásť a rásť, preto je dobré stanoviť jej nejaký limit:

    # ccache -M 1G

    Používatelia Gentoo si tento údaj môžu nastaviť aj v súbore /etc/make.conf:

    CCACHE_SIZE="1G"

    distcc

    Z dielne Samby pochádza aj program distcc, tentokrát je jeho autorom Martin Pool. Distcc distribuuje kompiláciu medzi viacerými počítačmi. To sa oplatí hlavne, pokiaľ chcete inštalovať Gentoo na pomalý počítač a máte k dispozícii jeden, alebo viac rýchlejších strojov.

    Program distcc najprv spracuje vstupný zdrojový súbor preprocesorom (gcc -E). Vznikne tak zdrojový súbor, ktorý obsahuje všetky hlavičkové súbory, ktoré sú potrebné na jeho skompilovanie. Program distcc tento súbor pošle na niektorý zo vzdialených počítačov, kde sa spustí kompilácia. Skompilovaný súbor s príponou .o (object), sa vráti späť na klientsky počítač a distcc sa ukončí.

    Aby tento postup kompiláciu urýchlil, musí byť kompilovaných viacero zdrojových súborov naraz. Program make podporuje paralelnú kompiláciu. Počet súčasne spustených kompilácií sa nastavuje parametrom -jN (N - počet paralelných kompilácií). Používatelia Gentoo si tento parameter môžu nastaviť v súbore /etc/make.conf:

    MAKEOPTS="-j2"

    S počtom paralelných kompilácií sa musíte trochu pohrať. Začať môžete s hodnotou rovnou počtu procesorov na kompilovanie plus jeden (napríklad ak kompilujete na dvoch dvoj-procesorových počítačoch nastavte MAKEOPTS="-j5"). Tento počet vám pomôže doladiť grafický monitor distccmon-gui.

    Distcc treba samozrejme nainštalovať, v Gentoo jednoducho:

    # emerge distcc

    Portage vie používať distcc automaticky, len ho musíte pridať do súboru /etc/make.conf do premennej FEATURES:

    FEATURES="distcc"

    Ak nepoužívate Gentoo, musíte si binárky distcc pridať do premennej PATH ešte pred cestou ku gcc. Ale pozor, ak používate aj ccache, najprv musí ísť cesta k ccache, potom k distcc a až potom všetko ostatné:

    # export PATH=/usr/lib/ccache/bin:/usr/lib/distcc/bin:$PATH

    Na vzdialených počítačoch musíte buď spustiť démona distccd, nakonfigurovať initd server alebo sprístupniť počítač cez ssh. Odporúčané je spustiť démona distccd:

    # distccd --allow 192.168.1.0/24

    Používatelia Gentoo budú mať po inštalácii k dispozícii rc skript:

    # rc-update add distccd default
    # /etc/init.d/distccd start

    Parameter --allow je veľmi dôležitý. Určuje, ktoré IP adresy budú mať prístup k distccd serveru. Používatelia Gentoo si tento a ďalšie parametre distcc môžu nastaviť v súbore /etc/conf.d/distccd.

    Nakoniec na klientskom počítači nastavte zoznam a limity pre vzdialené servery. To sa robí pomocou premennej prostredia DISTCC_HOSTS:

    # export DISTCC_HOSTS="localhost/2 192.168.1.1/2 superserver.com/8"

    V Gentoo použite konfiguračný nástroj distcc-config:

    # distcc-config --set-hosts "localhost/2 192.168.1.1/2 \
    superserver.com/8"
    # env-update
    # source /etc/profile

    Záver

    Ešte musím upozorniť, že ccache je citlivý na to, či používate distcc alebo nie. Ak ste prvú verziu kompilovali distribuovane a pri kompilácii novej verzie už nemáte k dispozícii viac počítačov a distcc vymažete za súboru /etc/make.conf, ccache si bude myslieť, že ste zmenili verziu gcc a medzivýsledky kompilácie vo svojej databáze jednoducho nenájde.

    Ak hrozí, že nebudete môcť kompilovať na viacerých počítačoch pomocou distcc, je lepšie distcc do súboru /etc/make.conf nedávať a spúšťať distribuované kompilovanie nasledovne:

    # FEATURES="distcc" emerge parametre        

    Hodnocení: 87 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    22.2.2006 09:05 Pet
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    A co kdyz mam pomaly pocitac x686 a rychly amd64? Nestalo by za alespon zminku, ze v takovychto pripadech je to o neco slozitejsi?
    22.2.2006 09:15 Wolf | skóre: 7
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Je potreba pri pouziti distcc aby na obou pocitacich byl x86 procesor? Nebo se da nejak zaridit abych mohl na AMD64 kompilovat pres distcc pro Durona? Diky
    22.2.2006 09:25 Pet
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Samozrejme to jde, ale musite instalovat kroskompiler :-( http://www.gentoo.org/doc/en/cross-compiling-distcc.xml
    Vykook avatar 22.2.2006 09:30 Vykook | skóre: 22 | blog: Tomas
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    na kompilaci i686 - i586 predpokladam taky potrebuju crosscompiler, ze?
    Nejde nám o dobro druhých. Nejde nám o bohatství. Jde o čisté opojení mocí.
    22.2.2006 09:36 lizard
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    ne. je to stejna architektur x86... jedine co je potreba jsou parametry -march, -mcpu nebo -mtune
    22.2.2006 17:52 Radek Podgorny | skóre: 16
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Omyl, na kompilace i586 vs. i686 je potreba crosscompiler.
    Luboš Doležel (Doli) avatar 22.2.2006 22:37 Luboš Doležel (Doli) | skóre: 94 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Podle mě je to taky jen otázka CFLAGS...
    22.2.2006 22:41 Radek Podgorny | skóre: 16
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    To jsem si taky myslel, ale mam vyzkouseno, ze to tak nejde. (Nebo jsem prilis hloupy :-) )
    Yin avatar 25.2.2006 21:14 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Verzie gcc musia byť pri distribouvanom kompilovaní rovnaké na všetkých strojoch. Osobne som mal s týmto problémi, ale neviem, prečo som sa o probléme a riešení nezmienil v článku. Ospravedlňujem sa.
    Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
    22.2.2006 22:44 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    cd /local/pub && more beer > /dev/mouth Blésmrt
    22.2.2006 09:34 lizard
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Zapomel jste zminit jednu velice dulezitou vec. A to ze k provozu distcc si musite hlidat verze kompilatoru (gcc) na masinkach na ktere budete distcc postvavat (DISTCC_HOSTS). Tam kde se pouzivaji stejna Linuxova distra (popr. FreeBSD) je to celkem jedno. Ale tam kde je kazdy pes jina ves to nemusi fungovat. Odzkouseno :).

    viz. : http://distcc.samba.org/faq.html#mixed-gcc

    Nebylo by na skodu rici ze je to jen pro trusted site a ze se to da pouzit i cez ssh... ale to si asi kazdy najde sam :)
    22.2.2006 10:19 j3nda | skóre: 13
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    jak je to s verzemi gcc? musi byt pri pouziti distcc stejne verze gcc a knihoven? (ono je to dost logicke, aby byly. jen se chci zeptat, zda v tom neni jeste nejak podrobneji zakopana bota?) diky.
    _____---==~[ uxunilcba ]~==---_____sevrer_pnly_liunx-lkie_hcaricku___ . Steig Larsson Millenium Trilogy (2009)
    22.2.2006 10:20 j3nda | skóre: 13
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    predchozi komentar uz mi dopovedel, diky.
    _____---==~[ uxunilcba ]~==---_____sevrer_pnly_liunx-lkie_hcaricku___ . Steig Larsson Millenium Trilogy (2009)
    22.2.2006 14:18 deda.jabko | skóre: 22 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    knihovny nemusi byt stejne (distcc s knihovanmi vubec nepracuje) a u prekladace je dobre mit stejne verze - obcas to zlobi
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    22.2.2006 10:31 Kodl
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Databáza ccache bude rásť a rásť, preto je dobré stanoviť jej nejaký limit

    Jak se bude ccache chovat az se databaze naplni? Nejstarsi soubory budou postupne odmazavany tak, jak budou prichazet nove, nebo se zobrazi nejake chybove hlaseni a bude nutno databazi promazat nejakym "primazavacim prikazem"? Diky. Karel
    22.2.2006 10:51 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Wikipedia:cache

    Pravdepodobne tam pouziji LRU algoritmus, ale je to celkem jedno. Dulezite je, ze se to "nezablokuje".

    Doporucuji mit ccache na samostatnem oddilu o velikosti stejne, jako ma samotna ccache. Vytuneny filesystem je nutnosti. Je to pak opravdu bleskove.
    22.2.2006 11:32 Z
    Rozbalit Rozbalit vše distcc -> icecream
    Daleko lepsi nez distcc je icecream

    - ma centralni scheduler, takze na rozdil od distcc rozdeluje ulohy na jine pocitace inteligentne (nepouziva zatizene pocitace, snazi se pouzivat nejrychlejsi nejdrive, sam hleda ostatni pocitace,...)

    - dokaze jednoduse mixovat ruzne druhy gcc a pocitacu (mit treba i686+gcc-3.x a nechat si prekladat na amd64+gcc-4.x neni problem)

    22.2.2006 12:45 lizard
    Rozbalit Rozbalit vše Re: distcc -> icecream
    a nezastavil se vyvoj? posledni verzi tam vidim z 13. 04. 2005 :/
    22.2.2006 15:26 EiFFeL | skóre: 24 | blog: EiFFeL | Vranovská Ves
    Rozbalit Rozbalit vše Re: distcc -> icecream
    nechci nic rikat, ale uz jen to ze mam sys-devel/icecream masked by mohlo o necem vypovidat...
    David Watzke avatar 23.2.2006 02:52 David Watzke | skóre: 73 | blog: Blog... | Silicon Hell
    Rozbalit Rozbalit vše Re: distcc -> icecream
    O čempak?
    www.Watzke.cz ... a nově (opět) i blog.Watzke.cz
    23.2.2006 12:34 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: distcc -> icecream
    O nepochopeni manualu:
    slon ~ # emerge -pv sys-devel/icecream
    
    These are the packages that I would merge, in order:
    
    Calculating dependencies
    !!! All ebuilds that could satisfy "sys-devel/icecream" have been masked.
    !!! One of the following masked packages is required to complete your request:
    - sys-devel/icecream-0.6.20040829 (masked by: ~x86 keyword)
    
    For more information, see MASKED PACKAGES section in the emerge man page or
    refer to the Gentoo Handbook.
    
    cd /local/pub && more beer > /dev/mouth Blésmrt
    David Watzke avatar 24.2.2006 20:57 David Watzke | skóre: 73 | blog: Blog... | Silicon Hell
    Rozbalit Rozbalit vše Re: distcc -> icecream
    Jasně, ale vůbec nechápu co tím autor příspěvku myslel... o čem to asi může vypovídat :/
    www.Watzke.cz ... a nově (opět) i blog.Watzke.cz
    27.2.2006 09:22 J
    Rozbalit Rozbalit vše Re: distcc -> icecream
    No, zamaskovany balicky sou bud v nejakem velmi brzkem alpha nebo dokonce prealpha stadiu vyvoje, nebo naopak ve stadiu kdy uz zadny vyvoj neexistuje. Takze to vypovida o tom, ze asi neni zrovna doporucovano je pouzivat, protoze bud nejsou moc odladene nebo mohou obsahovat bugy, ktere nikdo neopravi.
    27.2.2006 18:19 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: distcc -> icecream
    Ale ty ebuildy nejsou zamaskovany. RTFM, link mas nahore.
    cd /local/pub && more beer > /dev/mouth Blésmrt
    22.2.2006 22:44 Z
    Rozbalit Rozbalit vše Re: distcc -> icecream
    Ten download link je asi drobet out-of-date, ale v README tam jsou instrukce, jak to prelozit z KDE SVN. A tady je navod na anonymni KDE SVN pristup, icecream je v trunk/kdenonbeta/icecream. Nebo se to vsechno da vytahnout z src.cpm pro SUSE :-).
    22.2.2006 19:10 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    Je skoda, ze ackoli jsem k tomuto clanku posilal 9. unora mailem komentar, autor se jim neridil. Inu zde je:
    Limit ccache nastaveny pres `ccache -M 1G` *neovlivni* Portage, protoze Portage pouziva jiny $CCACHE_DIR nez root (defaultne je to "~/.ccache" iirc). Reseni je pri *kazdem* spusteni cehokoliv, co saha na ccache, at uz velikosti cache nebo monitory, nastavit spravnou $CCACHE_DIR (nekde pod /var/portage asi, nevim, nepouzivam, jsem liny zjistovat).

    Jinak u "distcc" je dobry zminit, ze se ma pouzivat jenom tehdy, pokud bychom uzivatelum kompilujicim z danych klientu poskytli na dalsich distcc nodech shell access, viz http://distcc.samba.org/security.html :

    "Anyone who can connect to the distcc server port can run arbitrary commands on that machine as the distccd user. If you are not using SSH, you must use the --allow rule and/or firewall rules to limit access to port 3632."

    Dale mi neni jasne, co autor minil doporucenim pouzivat `FEATURES="distcc" emerge foo` misto adekvatni zmeny make.conf, zejmena v kontextu predchoziho odstavce.
    cd /local/pub && more beer > /dev/mouth Blésmrt
    1.7.2008 09:52 rellix
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    odporucam skor pouzivat na kompilovanie s distcc alias pre emerge

    alias demerge="FEATURES='$FEATURES distcc' emerge"
    12.7.2008 18:51 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    ...a nebo si precist manual a zjistit, ze se $FEATURES nastavuji v /etc/make.conf, ze...
    cd /local/pub && more beer > /dev/mouth Blésmrt

    Založit nové vláknoNahoru

    ISSN 1214-1267   Powered by Hosting 90 Server hosting
    © 1999-2012 Argonit s. r. o. Všechna práva vyhrazena.