abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 18:00 | IT novinky

    DuckDuckGo AI Chat umožňuje "pokecat si" s GPT-3.5 Turbo od OpenAI nebo Claude 1.2 Instant od Anthropic. Bez vytváření účtu. Všechny chaty jsou soukromé. DuckDuckGo je neukládá ani nepoužívá k trénování modelů umělé inteligence.

    Ladislav Hagara | Komentářů: 1
    včera 14:22 | IT novinky

    VASA-1, výzkumný projekt Microsoftu. Na vstupu stačí jediná fotka a zvukový záznam. Na výstupu je dokonalá mluvící nebo zpívající hlava. Prý si technologii nechá jenom pro sebe. Žádné demo, API nebo placená služba. Zatím.

    Ladislav Hagara | Komentářů: 4
    včera 04:44 | Nová verze

    Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 140 (pdf) a HackSpace 77 (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 01:00 | Nová verze

    ESPHome, tj. open source systém umožňující nastavovat zařízení s čipy ESP (i dalšími) pomocí konfiguračních souborů a připojit je do domácí automatizace, například do Home Assistantu, byl vydán ve verzi 2024.4.0.

    Ladislav Hagara | Komentářů: 0
    18.4. 22:11 | IT novinky Ladislav Hagara | Komentářů: 0
    18.4. 20:55 | Nová verze

    Neziskové průmyslové konsorcium Khronos Group vydalo verzi 1.1 specifikace OpenXR (Wikipedie), tj. standardu specifikujícího přístup k platformám a zařízením pro XR, tj. platformám a zařízením pro AR (rozšířenou realitu) a VR (virtuální realitu). Do základu se z rozšíření dostalo XR_EXT_local_floor. Společnost Collabora implementuje novou verzi specifikace do platformy Monado, tj. open source implementace OpenXR.

    Ladislav Hagara | Komentářů: 2
    18.4. 17:22 | Nová verze

    Byla vydána nová verze 0.38.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 4.4 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 13
    18.4. 17:11 | Nová verze

    ClamAV (Wikipedie), tj. multiplatformní antivirový engine s otevřeným zdrojovým kódem pro detekci trojských koní, virů, malwaru a dalších škodlivých hrozeb, byl vydán ve verzích 1.3.1, 1.2.3 a 1.0.6. Ve verzi 1.3.1 je mimo jiné řešena bezpečnostní chyba CVE-2024-20380.

    Ladislav Hagara | Komentářů: 2
    18.4. 12:11 | IT novinky

    Digitální a informační agentura (DIA) oznámila (PDF, X a Facebook), že mobilní aplikace Portál občana je ode dneška oficiálně venku.

    Ladislav Hagara | Komentářů: 10
    18.4. 05:11 | Komunita

    #HACKUJBRNO 2024, byly zveřejněny výsledky a výstupy hackathonu města Brna nad otevřenými městskými daty, který se konal 13. a 14. dubna 2024.

    Ladislav Hagara | Komentářů: 2
    KDE Plasma 6
     (68%)
     (11%)
     (2%)
     (20%)
    Celkem 567 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

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

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

    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: 23 | 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: 98 | 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)
    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: 14 | ostrava/brno
    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 | baclniuxu ]~==---__sevrer_pnly_liunx-lkie_hcaricku__/libGDX-rulez-the-W0R7D!___
    22.2.2006 10:20 j3nda | skóre: 14 | ostrava/brno
    Rozbalit Rozbalit vše Re: Gentoo Linux - rýchlosť kompilácie (ccache a distcc)
    predchozi komentar uz mi dopovedel, diky.
    ___---==~[ uxunilcba | baclniuxu ]~==---__sevrer_pnly_liunx-lkie_hcaricku__/libGDX-rulez-the-W0R7D!___
    22.2.2006 14:18 deda.jabko | skóre: 23 | 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: 27 | 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: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: distcc -> icecream
    O čempak?
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    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.
    
    David Watzke avatar 24.2.2006 20:57 David Watzke | skóre: 74 | blog: Blog... | Praha
    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 :/
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    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.
    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.
    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...

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.