Prečo je lepšie kompilovať ako inštalovať z úložísk

V tomto malom sprievodcovi vám vysvetlím (a naučím vás), prečo je lepšie, aby ste program (napríklad Firefox, Vlc atď.) Skompilovali zo zdrojového kódu, než aby ste ho stiahli (zo Softvérového centra, Yumex, Pacman atď.) ) a nainštalujte.

Najprv pôjdeme s teóriou:

Čo je „kompilácia“?

Kompilácia transformuje zdrojový kód (kód napísaný v určitom programovacom jazyku, povedzme C, C ++ atď.) Na spustiteľný program pre jeho činnosť pomocou procesora na prevod jazyka použitého na vygenerovanie kódu na binárny a asembler. Často sa mu hovorí aj obal.

Prečo je lepšie „kompilovať“?

Najprv musíte vedieť nasledujúce, aby ste pochopili prečo. Povedané „surovým“ spôsobom (jednoduché, nie príliš profesionálne atď.), Každá rasa (Pentium, Core, Atom atď.) A jej druhy (Intel, AMD, ARM atď.) Procesora majú pokyny (softvér napísaný v assembleri) ktorý spracováva kód) ich modelu (Core i7, Core i5, Atom x2, Phantom x8, Arm atď.) a majú tiež všeobecné pokyny, ktoré majú všetky svojho druhu.

Pri sťahovaní z úložísk prostredníctvom Softvérového centra / apt-get / Yumex / Yum / Pacman / atď. Sa hovorí, že program, ktorý sa inštaluje automaticky, je tento predkompilované pre prevádzku na všetkých možných procesoroch (Intel a Amd). Pretože ide o predkompilovaný program, stratia sa pokyny typické pre tento konkrétny model procesora (myslite na to, že ak program ako Firefox alebo Chrome, ktorý obsahuje viac ako 7 alebo 8 miliónov riadkov kódu, musel vložiť všetky konkrétne pokyny pre každý procesor na trhu, množstvo kódu by bolo také veľké, že tento program by už nebol efektívny) a nenechával by nič viac, ako len bežné od svojej tvorcovskej značky (Intel, Amd, Arm).

Keď si stiahnete, rozbalíte a skompilujete zdrojový kód programu sami, kompiluje sa podľa konkrétnych pokynov z TU procesor, (čo neznamená, že nebude fungovať na stroji s iným, iba že bude optimalizovaný špeciálne a čisto pre váš procesor), čím uvoľní a uvoľní všetku silu, ktorú je váš procesor schopný poskytnúť vďaka svojim špecifickým pokynom.

Z technického hľadiska sú tieto konkrétne pokyny úzko spojené s takzvanou čipovou sadou základnej dosky, čo je veľká bolesť hlavy pre tých z nás, ktorí majú Intel, keď chcú upgradovať procesor a základnú dosku.

Boli by ste prekvapení, akú silu má váš amd atóm x2 alebo vy Intel Core vnútri, 2 Core Duo, i3, atď. zo starého počítača. Teraz chápete, prečo sa vo svete Linuxu veľa hovorí o kompilácii slávneho jadra (srdca každého operačného systému)? Predstavte si, že ak kompilujete celý systém (grafické prostredie (Gnome, Kde atd.), Jadro, bežne používané programy (Firefox, Vlc, Chrome, Wine atď.) Špeciálne pre váš počítač), všetku rýchlosť a úroveň optimalizácie, ktorú by ste mali.

Tento princíp kompilácie na získanie kódu optimalizovaného špeciálne pre váš počítač je používaný distribúciami ako Gentoo a deriváty (o ktorých teraz nebudem hovoriť, používam Fedoru minimal s kompiláciou Gnome 3, jadra a ďalších programov) kde sú systém, vaše aktualizácie a vaše programy vždy kompilované.

Nevýhody kompilácie:

Už som vysvetlil všetky výhody, ale ako všetko vo vesmíre, má aj jednu proti.

V prípade kompilácie sú;

  • Čas potrebný na to (Firefox s i7 4790K (bez pretaktovania, pretože som veľmi zlý s napätím) trvá 3 minúty, program Gnome Shell (panel nič viac) s programom Gnome-Control-Center mi trval asi 2 minúty, obe sa kompilovali o rovnaký čas vo Fedore. Ale na stroji s menej výkonným procesorom môže byť tento čas neúmerne dlhý).
  • Procesor využíva maximálne 100% svojho výkonu so všetkými svojimi jadrami, takže spotreba a horúčava prudko vzrastú (berte to do úvahy, ak máte pretaktovanie alebo ak ide hlavne o notebook), takže je vhodné pripraviť si maté alebo kávu pre túto príležitosť.
  • Možno vám chýba knižnica (nástroj), ktorá používa program, aby pri kompilácii nedošlo k chybe. Všeobecne platí, že všetky distribúcie majú svoje balíčky alebo sady, ktorým sa tomu majú vyhnúť (sú plné rôznych knižníc a ďalších vecí, ktoré umožňujú jadru počas procesu komunikovať s procesorom tak, ako má).

Ako môžem zostaviť?

Pre Debian (Ubuntu, Mint, Elementary atď.) Sú všetko odvodené od tohto, takže postupujte podľa týchto pokynov

Tu hovorím o kompilácii programu pre bežné použitie, nie jadra.

aptitude install build-essential dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep ardor

Dal som debian-policy, ale ak vaše distro nie je Debian a urobí vám chybu, že žiadny takýto balík neexistuje, jednoducho ho ignorujte. Musím objasniť, že som tieto systémy dlho nepoužíval, takže ak balík už nie je v úložiskách, nerobte problém.

Pre Fedoru:

sudo yum -y nainštalovať hlavičky jadra
kernel-devel
sudo yum groupinstall "Vývojové nástroje"
sudo yum groupinstall "Vývojové knižnice"

Tu sa musím ospravedlniť za tých, ktorí používajú Arch (neviem distro dobre) a OpenSuse, pretože nepoznám tieto distribúcie ani príslušné balíčky, aby som vykonal správnu kompiláciu (a nepodporoval som to, čo je v sieti, takže pre tých dvoch neviem, či fungujú).

Teraz, keď máte všetky potrebné požiadavky, stačí si stiahnuť zdrojový kód programu, ktorý chcete kompilovať, podľa prípony ho rozbalíte pomocou terminálu (nebojte sa, nechám vám príkazy) a keď idete do priečinka (vždy s terminálom), urobíte to isté:

Ak máte možnosť nakonfigurovať sa na výber komponentov a ďalších:

./configure

Potom napíšete:

make

A nakoniec nainštalujte program na svoj linux:

make install

To všetko vždy s rootom (su vo Fedore, sudo su v Ubuntu a jeho derivátoch (Mint, Elementary Os atď.)

Príkazy na rozbalenie pomocou terminálu (súbor sa rozbalí v priečinku, kde sa nachádza súbor):

.Tar súbory (tar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Balenie | tar cvf file.tar / file / * Rozbaliť | tar xvf file.tar Zobraziť obsah | tar tvf file.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (decht s gzipom ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Balenie a zips | tar czvf file.tar.gz / file / Rozbaliť a rozbaliť | tar xzvf file.tar.gz Zobraziť obsah (nerozbalený) | tar tzvf file.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimovať | súbor gzip -q (súbor komprimuje a premenuje súbor „file.gz“) Rozbaľte | gzip -d file.gz (súbor ho rozbalí a ponechá ho ako „súbor“ Poznámka: gzip komprimuje iba súbory, nie adresáre
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimovať | súbor bzip2 | súbor bunzip2 (súbor komprimuje a premenuje súbor "file.bz2") Unzip | bzip2 -d súbor.bz2 | bunzip2 file.bz2 (súbor ho rozbalí a ponechá ho ako „súbor“) Poznámka: bzip2 komprimuje iba súbory, nie adresáre
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (decht s bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimovať | súbory tar -c | bzip2> file.tar.bz2 rozbaľte | bzip2 -dc súbor.tar.bz2 | tar -xv | tar jvxf file.tar.bz2 (posledné verzie tar) Zobraziť obsah | bzip2 -dc súbor.tar.bz2 | tar -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zips) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimovať | zip file.zip / mayo / archive Unzip | rozbaliť súbor.zip Zobraziť obsah | rozbaľte -v súbor.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimovať | rar -a súbor.rar / máj / archívy Unzip | rar -x súbor.rar Zobraziť obsah | rar -v súbor.rar | rar -l súbor.rar

A to je všetko. Zdravím vás z argentínskeho Buenos Aires. Príjemné sviatky a nové roky! :).


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   Gonzalo dijo

    Problém s kompiláciou je, že to nefunguje vždy na prvýkrát a je to zdĺhavejšie.

    1.    Cristian dijo

      Problém s kompiláciou je, že pokiaľ nemáte starý a obmedzený počítač, vylepšenia nebudú príliš nápadné ... no možno v počítači s intenzívnym používaním je to možnosť, ale pre väčšinu používateľov je to len zdĺhavý proces.

      1.    daniel dijo

        Myslím si, že to je jadrom veci. Je zlepšenie výkonu, ktoré bude viditeľné pri zostavovaní balíkov, také dôležité, že by to vyžadovalo čas a problémy s touto úlohou v pozadí?

      2.    joaco dijo

        To isté, ak máte kompiláciu i7, je to pohodlné, pretože je rýchlejšia a počítam, že funguje niečo lepšie. Teraz s počítačom s atómom Intel to nie je pohodlné, pokiaľ skutočne nepotrebujete extra výkon, ktorý kompilácia dáva, ale kompilácia programu so slabým procesorom môže trvať hodiny.

    2.    Avrah dijo

      Úplne súhlasím, stalo sa mi, že som zostavil a po chvíli som zistil, že vám chýba knižnica, sledujte ju a musíte znova čeliť procesu ... Je zriedkavé, že všetko funguje na prvý pokus ... xD

  2.   FerGe dijo

    ¡Muy interesante!

    Ak zostavujete program, ako potom fungujú aktualizácie? Sú automatické alebo si musíme byť vedomí toho, či vyšla nová verzia?

    1.    Anthony Fields dijo

      Musíte ju aktualizovať manuálne, to znamená, že kompilujete najnovšiu verziu, ktorá je ďalšou, povedzme „nevýhodou“, pre ktorú tiež robí niečo zdĺhavé.

    2.    jlbaena dijo

      Pretože aktualizácie neexistujú, distribúcie systému Linux a ich rôzne spôsoby balenia softvéru a zodpovedajúci správcovia balíkov v skutočnosti eliminujú nepríjemnosti spojené s prekompilovaním každej novej aktualizácie (a riešením závislostí).

      Zdravím.

    3.    joaco dijo

      Ak ho skompilujete stiahnutím zdrojového kódu z ktorejkoľvek stránky, musíte to urobiť manuálne a naučiť sa, ako ho nainštalovať, pretože nie všetky sú nainštalované rovnako.
      Teraz, ak máte Gentoo alebo nejaké distro s portami, robíte to z repozitárov takmer automaticky.

    4.    Fermín dijo

      V Gentoo sa váš správca balíkov, Portage, stará o aktualizácie a závislosti; O iných distrách neviem. Samozrejme, každá aktualizácia samozrejme zahŕňa novú kompiláciu.

  3.   tanrax dijo

    Bolo obdobie, keď som zostavoval všetko, čo som mohol. Potom som bol unavený, najmä kvôli času, ktorý som musel venovať práci so strojom (45 minút pre jadro, 10 minút pre chróm ...) a kvôli času, ktorý som venoval opravovaniu problémov, ktoré sa vyskytli za chodu. Navyše som osobne nezistil zvýšenie výkonu, mal som pocit, že je všetko po starom. Z týchto dôvodov teraz používam všetko predkompilované, všetko je okamžité a bez konfliktov. Aj keď som sa v tom čase veľa naučila, zostala mi túžba používať gentoo 🙂

  4.   Emmanuel dijo

    Dokonca, a je to niečo, čo som videl málo, je možné to zostaviť zo systémov ako apt. Pridajte príznak zostavenia do apt-source a voila. Samozrejme, pred tým, inštalácia potrebných balíkov na vykonávanie kompilácií, ak nie, nefunguje ... aj keď sa jedná o priamejšiu formu kompilácie, ktorá vyžaduje menej krokov, pretože to trvá iba prvýkrát. inštalácia balíkov a nasledujúce, splnené závislosti a balík ako taký.

    Zdravím.

    1.    joaco dijo

      Má funkčnosť apt-build, aj keď si myslím, že nezostavuje závislosti, ale inštaluje predkompilované binárne súbory.

  5.   xikufrancesc dijo

    Od prvého okamihu, keď som uvidel nadpis, nemohol som si pomôcť, ale myslel som si to isté a po prečítaní celého vynikajúceho článku mám na mysli ten nápad, ktorý by som prešiel tisíckrát, Gentoo ... Gentoo, kde si?
    kompilácia je úžasná, schopnosť využívať určité funkcie a používať ich je na nezaplatenie, ale čas a „súčasné potreby“ sú neospravedlniteľné, pretože sa neuplatňujú.
    Možno potrebujeme niečo uprostred, kde ani knižnice, ani podrobnosti pri zmene verzie nestratia toľko času. Uvidíme, čo sa potom stane, alebo či sa skutočne budeme venovať zostavovaniu samotnej aptitude, uprmi a zypper, ktoré už máme nainštalované.

  6.   anonymný dijo

    3 minúty firefox!… .Mysleli ste 30?

    Na počítači s 8350G fx4.5 to chvíľu trvalo, používam gentoo.
    $ genlop -t firefox | chvost -n3
    So Dec 6 20:00:00 2014 >>> www-client / firefox-34.0.5-r1
    doba zlúčenia: 16 minút a 35 sekúnd

    Tieto pokyny špecifické pre každý procesor sa nazývajú mnemotechnické pomôcky a sú fyzicky implementované v mikroprocesore. Tvoria strojový jazyk, a preto sa kompilujú tak, aby program mohol bežať na mnohých druhoch mikroprocesorov, či už musia byť obmedzené na najmenšie množstvo bežných mnemotechnických znakov podporovaných vo všetkých týchto mikroprocesoroch ... plytvanie skutočnou kapacitou najaktuálnejších a najsilnejších mikroprocesorov.
    Takto to robia spoločnosti a binárne distribúcie gnu / linux.

    1.    Shyancore dijo

      S procesorom Intel i7 4790K a 18 GB RAM to, čo som už povedal, zabral

      1.    anonymný dijo

        Chápem, že mikroskop, ktorý máte, je lepší, ale rozdiel je priepastný, pravda musí byť pri tejto rýchlosti savanou. Možno to súvisí so závislosťami alebo USE, ktoré sú rovnaké ako možnosti konfigurácie pri ručnej kompilácii.

      2.    Jhonny dijo

        Malý detail, ktorý ste (okrem modelu i18) vynechali, aby ste povedali 7 GB RAM, nie všetci majú tento stroj, ale mohli by ste urobiť test, takže rozdiel je badateľný, pretože teória je pekná, ale pozrime sa, či to kompenzuje.

      3.    Cristian dijo

        Ďalším veľkým detailom je procesor Intel, preto má najlepšiu plávajúcu desatinnú čiarku nezávislú od modelu, čo je veľmi dôležitá vlastnosť pri vykonávaní tohto typu procesu.

    2.    Ezequiel dijo

      Je pravda, že kompilácia je namáhavá. Ale veľa sa dozviete tým, že sa zrieknete makefilov, knižníc atď. Je niečo, čo je dobré urobiť aj niekoľkokrát. Používam všetko predkompilované z rovnakého dôvodu, aký citoval Tanrax.

      Zdravím z Argentíny!

  7.   Erick carvajal dijo

    Problém, ktorý obvykle mám, keď sa pokúšam kompilovať programy úplne novej verzie, je vždy závislosťou, niekedy je potrebné zostaviť všetky (aby ste sa dostali k najnovším verziám) a potom premýšľať o možnosti zostaviť to, čo chcete.

    Problémy s CESTOU a VLAJKY sú veci, ktoré mi stále bránia v tom, aby som chcel zostavovať všetko (aj keď to väčšinou robím tak, ako viem). Jedným z nástrojov, ktoré zvyčajne konzultujem, aby som mohol zostaviť závislosti, je nasledujúci web - http://www.linuxfromscratch.org/ -

    #LinuxFromScratch je projekt, ktorý poskytuje podrobné pokyny na kompiláciu zdrojového kódu, ktorý musíte v systéme použiť. (98% z toho, čo som potreboval na kompiláciu, som dosiahol tým, že ma odtiaľto vedie postupne učenie).

    Ako plus bod si myslím, že kompilácia systému od 0 by bola zaujímavá hlavne pre vývojové prostredia alebo servery okrem iných vecí, ktoré hovoríme „nie sú zvyčajne tak premenlivé“ ako osobný počítač, do ktorého neustále inštalujeme a meníme všetko (je to môj názor) okrem toho, že minimálny výkon, ktorý sa dosahuje pri tomto type aplikácií, je veľmi dôležitý.

    Toto sú body, o ktorých sa v dnešnej dobe hovorí veľmi málo a riadia ich iba „vedci“, ale je zaujímavé dať týmto druhom návodov, ktoré potrebujú, aby sme každý deň našli viac ľudí, ktorí prispievajú pomocou rôznym komunitám, kde sa zúčastňujú. a Gnu / Linux nielenže zostáva v čase kvôli zlému výkonu spolupracovníkov, aj keď doteraz „to fungovalo týmto spôsobom“ nie je príliš zdravé mať iba koncových používateľov.

  8.   Orol Rabuda dijo

    Dovoľte mi malý dodatok. Ak chcete získať výhody, ktoré tu uvádzate, musíte správne nakonfigurovať známy make.conf. Je tu uvedená rodina procesorov a príznaky kompilácie. Podobne môžete určiť počet jadier, ktoré sa majú použiť počas kompilácie. Keď použijete všetky jadrá mikrofónu, čas kompilácie sa drasticky zníži.

    Pozdrav

  9.   Sebastian dijo

    Veľmi dobrý článok. Tiež by sa mi páčil príklad alebo by som chcel priamo, príspevok o tom, ako kompilovať v archlinuxe alebo ako používať AUR. Šťastný nový rok z Mendozy.

  10.   TheGuillox dijo

    Dávno ... Vždy som kompiloval jadro, ale je veľmi zdĺhavé čakať 40min: / každopádne ... už dávno som nič nekompiloval, okrem grafických ovládačov (iba pre špeciálne konfigurácie).

  11.   alexander dijo

    Článok je veľmi zaujímavý, ale žiadny pane, balenie a zostavenie nie je to isté;) ..

  12.   c4výbušný dijo

    Veľmi dobrý príspevok. Súhlasím s kompiláciou určitých programov, ale niekedy je to trochu zdĺhavé, takže tento proces vyžaduje stroj. Ale okrem toho sa človek veľa dozvie, najmä keď sú potrebné knižnice alebo balíčky.
    Myslím, že pre Archlinux potrebujete na zostavenie nasledujúci balík: base-devel
    pacman -S base -devel

  13.   zabiť potkana dijo

    Informácie sú veľmi dobré, ale pravdou je, že ich nie je potrebné kompilovať, ak ste štandardný používateľ a chcete iba to, aby niečo fungovalo takto, toho sa ani nedotýkajte. Je namáhavé kompilovať, vždy, vždy hovorím, že vám chýba knižnica, narazíte na ten či onen problém, povedzte mi, aby som zostavil server minecraft tak, aby bolo všetko čo najlepšie a aby som si našiel čas .... okrem toho, že vždy, keď vyjde aktualizácia alebo oprava alebo čokoľvek iné, začnite znova kompilovať xd

    1.    kik1n dijo

      Kompilovanie je presne určené pre veľmi špecifické programy, ktoré potrebujete pre optimálne využitie, pretože kompilácia všetkého a ako hovoríte, vždy existujú aktualizácie, väčšinou distribúcie rolujúcich vydaní, je nepríjemná. Odporúčal by som iba jadrá lts.

  14.   Používateľ Fedora dijo

    Dnes takmer všetky procesory, ktoré ľudia používajú, podporujú rovnaké pokyny, preto je kompilácia priaznivá, iba pokiaľ ide o jadro a v systéme ako je server, a samozrejme, keď neexistujú žiadne predkompilované balíčky, je to všetko zbytočné čas.

  15.   John Mere dijo

    Dobrý príspevok, pokúsim sa zistiť, ako to bude, zatiaľ si väčšinu času (takmer vždy) inštalujem z repozitárov ...
    Malé pozorovanie: Možnosti príkazu rar sú skriptované a bunzip2 iba rozbaľuje.

  16.   santiago dijo

    Maximum, ktoré som zostavil, bolo jadro pre debian wheezy a trvalo mi to asi 2 hodiny (mám dvojjadrový procesor amd e450 1.6 ghz) a práve preto neinštalujem gentoo, čas na kompiláciu a stiahnutie celého systém by mi trval asi 18 hodín, a že ak nemám problém, je pravda, že je lepšie ho zostaviť, ale väčšinou je to príliš veľa času a myslím si, že to za to nestojí. Máte zvýšenie rýchlosti, ale nie je to veľa a nemyslím si, že by to malo opodstatniť celú investovanú dobu. Aj keď jedného dňa budem mať počítač s procesorom tak dobrým ako váš, pokúsim sa nainštalovať gentoo 😛

  17.   Upír dijo

    ľudí:

    Bez zámerov plameňa alebo čohokoľvek iného považujú flákači za prirodzené kompilovať, generovať binárne súbory, nainštalovať ich s príslušným správcom balíkov (ktorý samozrejme rieši závislosti, slapt-get, swaret, slackyd a / alebo niekoľko ďalších) so všetkým optimalizovaným pre naše tím a akoby nič, o čom nie je o čom písať domov ani kvantová fyzika.

    Sledovanie DVD bez zakopnutia na P3 750MHz so 192MB RAM nie je v Slackware nemožné ani ťažké dosiahnuť. Atestujem a je to rýchlejšie ako zostavenie Gentoo. Ale nie je to to isté, používam aj Gentoo.

    Rozdiel medzi hackerom a spotrebiteľom je v tom, že spotrebiteľ hovorí „Kiež by to tak fungovalo“ a hacker „Mám skrutkovač a pár minút“ - Rael Dornfest

  18.   pepenrike dijo

    Je skutočne viditeľné zlepšenie výkonu?
    Ako si všimnete rozdiel medzi kompilovanými balíkmi a binárnymi súbormi s minulou generáciou i7 a 18 Gb ram?

    Vždy som nenávidel vhodnosť samostatne zostavujúcich balíkov, ale myslím si, že v súčasných desktopových prostrediach je jeho udržanie veľmi zložité, najmä kvôli zložitosti závislostí, neustálym aktualizáciám a enormnej závislosti od neslobodných. zdroje, ako v prípade proprietárnych ovládačov, ktoré nepochybne ovplyvňujú výkon oveľa viac ako akýkoľvek aspekt, ktorý je možné zostaviť ...

    pozdravy

    1.    Shyancore dijo

      Ak vezmeme do úvahy, že Gnome 3 to iba kompiluje (mená poviem surovo od mien balíkov, ktoré si nepamätám): shell (lišta), gnome-control-center (kompletný, s jeho závislosťami atď.), Applet na čas a asi 2 alebo 3 závislosti, aby shell fungoval. Je zrejmé, že shell vyžadoval viac závislostí, aby všetky jeho funkcie fungovali, ale viedlo ma to okrem iného ku kompilácii GDM, napravil som to úpravou pomocou GConf, akonáhle bol shell zostavený.
      Teraz, keď sa prihlásim (cez terminál), načítanie prostredia trvá oveľa menej času, ako keď bolo nainštalované predkompilované. Vyhodením času do vzduchu, predkompilovaným spôsobom si myslím, že načítanie škrupiny trvalo asi 3 alebo 4 sekundy (asi pri 5, na ktorých je znázornená tapeta, som nikdy nepochopil, prečo to trvalo tak dlho, zdá sa mi, že to je kvôli ovládaču s GT 630) a skompilovaný hneď po zadaní hesla sa spustí X org a prostredie sa načíta (pomocou preload a prelink som ich urobil omnoho rýchlejšie, zdá sa mi, že je to preto, že boli odovzdané keška; https://www.google.com.ar/search?q=preload+y+prelink+fedora&ie=utf-8&oe=utf-8&gws_rd=cr&ei=iXaqVPykO4qYNpbTgdAP )

    2.    mario dijo

      Skutočnosť, že i7 má pokyny ss4 a ss3, ktoré sú ignorované generickými zostavami z rôznych distribúcií (debian kompiluje pre 486, ubuntu pre 686), vám môže poskytnúť predstavu o tom, kedy je zbytočné plytvať hardvérom pri pokuse prekonať 20 rokov starý procesor - možno ďakujem za podporu môjho starého pentia mmx-. Ak potrebujete „proprietárne ovládače“, ako ste spomenuli, jadro poskytuje schopnosť načítať konkrétny firmvér v čase kompilácie. Už žiadne čudné problémy s xorg.

  19.   Fabian Alexis dijo

    Ďakujeme za informácie, vždy je dobré sa učiť (alebo sa znovu učiť) (:

  20.   xavier dijo

    Debian s potešením pre Gentoo 🙂
    http://crysol.org/es/node/699

  21.   Šesť juanov dijo

    Ďalšou nevýhodou je, že terminálna kompilácia je pre používateľov, ktorí vedia alebo už majú nejaké znalosti o Linuxe. Existuje grafický nástroj, ktorý nespravuje kompiláciu, inštaláciu a aktualizáciu programov, ale graficky?

    1.    mario dijo

      Vypočítajte, že to robí linux, je to gentoo s grafickými nástrojmi pripravenými na kompiláciu. V Phoronix to zvyčajne odporúčajú.

  22.   José dijo

    Som používateľ linuxu. Niekedy, keď chcem inštalovať program z úložiska, sú nainštalované staré verzie programu, jednoducho preto, že nové nie sú pre dané distriktovanie kompilované, takže si myslím, že vedieť, ako kompilovať, je nevyhnutné, ešte viac, ak sa používajú zriedkavé distribúcie.

  23.   joan dijo

    Všetko, čo sa v príspevku píše, je v poriadku a nepochybujem o tom, že je to pravda, ale rozdiel vo výkone medzi inštaláciou binárneho balíka a kompiláciou je pre používateľa nepostrehnuteľný.

    A nevýhod kompilácie je veľa a ak sú pre užívateľa zreteľne vnímateľné. Preto osobne pristupujem k zostaveniu.

  24.   NauTiluS dijo

    Tam, kde som pri kompilácii jadra zaznamenal najviac výkonu, to bolo na notebooku s procesorom AMD 64. Zmena medzi továrenským jadrom a kompilovaným bola brutálna.

    Momentálne mám vo svojom systéme továrenské jadro, pretože ako sa tu veľa hovorí, boli časy, keď som zostavil takmer všetko a unavil som sa.

    Momentálne zostavujem iba niektoré životne dôležité programy, ako napríklad použitie malého servera alebo hranie s emulátormi. Nie je to tak dávno, čo som zverejnil príspevok o tom, ako zostaviť mame verziu. Tieto programy sú všeobecne viditeľné, keď ich máte optimalizované pre váš systém.

    Musím len vyskúšať to gentoo distro a zistiť, ako ide ten výkon.

  25.   NauTiluS dijo

    Zabudol som dodať, že ľuďom, ktorým kompilácia jadra trvá dlhšie ako 30 minút, existuje niekoľko trikov, ako to urobiť za kratší čas.

    Jedným z týchto trikov je, že sa vám zdá iba kompilácia modulov vášho zariadenia, maximálne, možno 70 modulov, a ak k tomu pridáme podporu iptables so všetkými jeho požiadavkami, myslím, že by sa zvýšila na 300 modulov. No tak, je to oveľa lepšie ako kompilovať 3000 a trochu modulov, čo je údaj, ktorý momentálne funguje, ak sú moduly jadra kompilované tak, ako to pochádza z továrne alebo ako sa hovorí, vanilka.

    Program, ktorý vám pomôže zistiť, ktoré moduly momentálne rozpozná vaše jadro vo vašom systéme, je „localmodconfig“ alebo pomocou tohto skriptu „streamline_config.pl“, ktorý sa nachádza v zdrojovom adresári jadra, v ceste „/ scripts / kconfig /»

    Samozrejme, skontrolujte, či máte pripojené všetky svoje USB zariadenia, pretože akonáhle jadro rozpozná všetky vaše moduly, je to len otázka kompilácie.

    Jadro bude veľmi ľahké a v systéme budete cítiť určitý sviežosť, ako aj zrýchlenie spustenia a vypnutia systému.

    Zdravím.

  26.   tabris dijo

    Život nie je taký ľahký! existujú programy, ktoré používajú cmake alebo iné veci a udržiavať všetko aktualizované a kompilované si vyžaduje čas. A mať taký procesor, aký rozdiel to pre vás urobí?

  27.   yoyo dijo

    Problém s kompiláciou spočíva v tom, že niektoré programy, ktoré inštalujeme pomocou tejto metódy, sa potom neodinštalujú alebo sa pri tom vyskytnú chyby, takže ich nemôžeme odinštalovať.

    1.    anonymný dijo

      Priečinok musíte uložiť s kompilovanými zdrojmi. Ak chcete odinštalovať, stačí prejsť do priečinka sources a z terminálu ako root:

      # odinštalovať

      Samozrejme, balíčky, ktoré sú štandardne kompilované ručne v každom vážnom distro, sú nainštalované osobitne, to znamená v adresári / usr / local / bin nie v adresári / usr / bin, kde ich predvolene umiestňuje správca balíkov distra. je zahrnuté.

  28.   freebsddick dijo

    Tento článok prináša niekoľko zaujímavých vecí, ale chýba mu strašná kvalita, pokiaľ ide o jeho logickú štruktúru a štruktúru.

    «V spustiteľnom programe pre svoju činnosť prostredníctvom použitia PROCESORA na prevod jazyka použitého na generovanie kódu na binárny a assembler. Často sa mu hovorí aj obal. ““

    Falošné. je skutočne používaný, je kompilátor zodpovedný za odovzdanie pokynov určitého programovacieho jazyka k jeho zodpovedajúcemu v montážnom jazyku a potom ich preloží do strojového jazyka.

    Montážny jazyk je mnemotechnická pomôcka, ktorá odráža skupinu pokynov uložených v registroch čipu.

    „Keď si sami stiahnete, dekomprimujete a kompilujete zdrojový kód programu, je zostavený podľa konkrétnych pokynov VÁŠHO procesora.“

    Pri kompilácii programu sa to bude jednoducho robiť podľa pokynov spoločných pre architektúru, záleží na každom používateľovi, aby aktivoval príslušné príznaky kompilátora, aby optimalizoval program pre konkrétny procesor.

    Pokiaľ ide o to, čo komentujete pri zostavovaní jadra:
    Pri kompilácii jadra hľadáte aktiváciu alebo deaktiváciu funkcií, ktoré môžu alebo nemusia byť v určitom čase užitočné, čo sa nemusí nevyhnutne prejaviť vo vzťahu veľkosti a rýchlosti v záťaži vykonania.

    Keď sa pozriete na nasledujúcu časť:

    dh-make devscripts fakeroot debhelper debian-policy zhrubache dh-autoreconf autotools-dev build-dep

    Tieto programy nie sú nevyhnutné na zostavenie programu. Ako ste sa pokúšali povedať na začiatku, počet programovacích jazykov vám bráni s istotou vedieť, aké nástroje musíte mať nainštalované, aby ste mohli kompilovať programy v gnu / linux ... to môžete vedieť iba po konzultácii s dokumentáciu k programu, ktorý chcete vykonať. Programy, ktoré spomeniete, sa používajú na DEBIANIZÁCIU a zabalenie tohto formátu do programu, ktorý sa môže alebo nemusí kompilovať.

    V článku sú aj ďalšie problémy, ktoré sa javia akosi nejednoznačné, pokiaľ ide o spôsob ich kladenia. Bolo by ťažké osloviť ich všetkých.

    Navrhujem preskúmanie článku, pokiaľ je to možné, od jeho tvorcu, a požaduje lepšiu kontrolu kvality publikácií.

    1.    pepenrike dijo

      Človeče, tiež to nie je ono.

      Článok nie je určený pre časopis Science, je to iba úvodný článok a myslím si, že v podmienkach, v ktorých je napísaný, je dostatočný do hĺbky, aby začínajúci používateľ pochopil kľúčové pojmy.

      Keby sme sa dostali na akademickú pôdu, tri štvrtiny z toho, čo je zverejnené na internete, by nestálo absolútne nič.

      Nebuďme takí puristickí ... nedá sa na 100% súhlasiť s článkom, ale nemôžeme neustále hodnotiť „technickú“ kvalitu, akoby sme mali hodnotiť doktorát.

      Moja plná podpora autorovi tohto článku

  29.   nemenovaný dijo

    zaujímavý článok

    Pre milovníkov slobody je vždy dobré použiť unar namiesto rar na slobodné rozbalenie rarov. ( https://packages.debian.org/jessie/unar )

  30.   Jumi dijo

    Pri tomto probléme som narazil na chybu ... Začal som hľadať v google, ale nemôžem nájsť návod na zostavenie firefoxu pod ubunto 14.04 amd64 bitov ... inak dnes večer dostanem jadro s nasledujúcim návodom: http://www.redeszone.net/2014/11/28/como-instalar-el-ultimo-kernel-de-linux-en-ubuntu-14-04-lts/

  31.   carlos ferra dijo

    dobrý článok, veľa sa učím. ale použil by som to iba na nejaký konkrétny program, ktorý spotrebúva veľa zdrojov, napríklad videonahrávky. S pozdravom.

  32.   Babel dijo

    Medzi týmto článkom a Gentoo, ktorý publikovali pred pár dňami, ma lákajú k inštalácii Gentoo na môj PC. Pred mnohými rokmi som použil Sabayon, ktorý uľahčil celý proces inštalácie, ale ponechal si základňu, ktorá je kompilácia zo zdroja. Úprimne si nepamätám, že by som si všimol nejaký rozdiel vo výkone môjho notebooku (v tom čase som mal k dispozícii kolo) so Sabayonom alebo s Ubuntu, takže neviem, či sa mám vrhnúť na celú prácu na odstránení môjho Archu, ktorý funguje veľmi dobre. nainštalovať. Nie som si istý, či pár milisekúnd na program stojí za to.

    1.    anonymný dijo

      Zo 4 ks s gentoo, ktoré som nainštaloval a aktualizoval, je pridaný notebook, ktorý mal archlinux ... Systemd ma unavil, už som ho musel používať so startx, pretože pri poslednej aktualizácii obe jadrá vystrelili na 85%, bez toho, aby som nič neurobil, som skúmal a zdá sa, že v systemd sa niečo zmenilo, aby sa slim zbláznil a zjedol mikroprocesor.
      Dosť, s oblúkom to stačilo ... príliš dlho to vydržalo, viac ako dva roky, teraz inštalujem gentoo, chystám sa na testovaciu aktualizáciu stage3, na dnes večer pôjde openbox s hranolkami.

  33.   Lev dijo

    Dobrý článok, núti ma to kompilovať Qupzillu, ale so sempronom to bude trvať dni, dobre, viem, že nie tak dlho, ale stále pôsobí zlým dojmom.

  34.   Manuel Aponte dijo

    Ďalšou nevýhodou kompilácie je, že keď existuje aktualizácia, je potrebné ju znova skompilovať a nainštalovať, čo je problém vzhľadom na to, že niektoré programy majú krátke vývojové cykly a aktualizácie sa pre ne vydávajú často, 2 až 3 mesiace, pričom všetky príležitostný užívateľ sa tým začne nudiť a neustály užívateľ strávi veľa času udržiavaním svojho systému v aktualizovanom stave.

  35.   Manuel Aponte dijo

    Chcel by som vedieť, ktoré aplikácie sa viac odporúčajú kompilovať. podľa jeho užitočnosti, frekvencie aktualizácií a zlepšenia výkonu.

  36.   Alex Pol dijo

    To je absurdné, ak sa potrebujete zostaviť, používate nesprávne rozdelenie. Jediným dôvodom na kompiláciu je pridať možnosti ladenia, ktoré vás spomalia výmenou za lepšie odstránenie chýb ostatných.
    Váš systém nie je pomalý, pretože potrebuje -O3, je pomalý, pretože je v ňom program, ktorý príliš veľa číta na disk alebo príliš maľuje na obrazovku.

    Moje odporúčanie: Namiesto mikrooptimalizácie nášho systému poďme spoločne vylepšiť softvér, ktorý všetci máme.

  37.   Javier Fernandez dijo

    Nevysvetlili ste, ako optimalizovať kompiláciu, napríklad v Gentoo sa možnosti USE používajú na optimalizáciu generovaného kódu, musíte označiť aj procesor atď. Ako sa to deje v UBUNTU / Debian alebo Arch?, Zaujímavý článok.

  38.   Jose Manuel dijo

    Dobrý!

    Ak nebudem čítať komentáre nižšie, mám v linuxe nováčika:

    Používam Fedoru 20, už mám nainštalovaných pomerne veľa vecí, napríklad prehliadač Firefox, aby som to skompiloval pre svoj stroj, môžem to urobiť bez ďalších okolkov? Teda pod kódom a skompilovať to, alebo urobím najskôr musíte vymazať program, ktorý som už stiahol, aby som zostavil nový ...

    To isté s jadrom Linuxu a podobne ....

    Možno sa pýtam niečoho absurdného, ​​ale už som povedal, že som celkom nováčik v serióznych Linuxových veciach lol

    Zdravím!

    1.    Koprotk dijo

      Myslím si, že jadro nie je potrebné, ale pre každé jadro musíte vytvoriť záznam v GRUBe, s firefoxom neviem, či je vhodné mať 2 firefox, osobne mám radšej 1 iba jadro a 1 iba firefox

  39.   st-avapxia dijo

    Jediná vec, ktorú som v živote zostavil, bola verzia pre vývoj Musique. Táto aplikácia sa mi veľmi páči, stála za to všetok čas, ktorý som potreboval na vykonanie tohto procesu. Keď som skončil pre konečného používateľa, ako som ja, cítil som sa naplnený.

    Zdravím, vynikajúci blog.

  40.   ekoslacker dijo

    Dobrý deň, používam program Slackware a kompilácia aplikácií je najbežnejšia vec na svete.
    Nainštalujete systém z už predkompilovaného ISO a predkompilovaných aplikácií, ktoré môžete použiť z oficiálneho úložiska, je niekoľko, hoci ak chcete, môžete si stiahnuť zdrojový kód systému (a pôvodné skripty, s ktorými sa celé distro kompiluje) ) a zostavte si ho sami, podľa čoho si predstavujem, že Gentoo funguje.
    Projekt SlackBuilds však poskytuje skripty (podobné oficiálnemu distru) pre mnoho aplikácií tretích strán, v ktorých si stiahnete zdrojový kód toho, čo chcete nainštalovať, a prevediete ho na balík tgz alebo txz, ktorý je s ním neskôr nainštalovaný. oficiálny správca balíkov distro. Výhodou preto je, že sa vyhnete používaniu príkazov configure, make, make install a môžete balíček aktualizovať, preinštalovať alebo odstrániť ako každý iný a veľmi ľahko.
    Nevýhodou je, že v Slackware sa závislosti neriešia automaticky ako v iných distribúciách, takže musíte najskôr zostaviť potrebné závislosti a poslednú aplikáciu, ktorú chcete nainštalovať. Kompilované programy, ktoré používam, sú okrem iných od LibreOffice, Texmaker, Spyder, Qt5, QtCreator, VLC, Wine, GRASS, QGis. V závislosti od aplikácie a jej požiadaviek môže kompilácia a inštalácia trvať od 5 minút do niekoľkých hodín. Ak však chcete, môžete si nájsť a použiť predkompilovaný balík, ktorý vám ušetrí čas.
    Nemal som čas skontrolovať, či existuje veľký rozdiel medzi kompilovanými a predkompilovanými balíkmi, ale môj systém je veľmi stabilný. Ale myslím si, že aspoň v mojom notebooku nie je veľký rozdiel, pretože nie je až taký výkonný, má procesor i3 a 4 GB RAM.
    Zdravím a veľa šťastia pri zostavovaní.

  41.   Koprotk dijo

    Momentálne používam Funtoo, úprimne povedané, nevidím žiadny rozdiel vo výkone medzi kompiláciou programu alebo inštaláciou predkompilovaného programu, robím to čisto na vzdelávací účel, ale ak existujú rozdiely medzi kompiláciou jadra a nerobením, Áno. Keď som používal debian a chcel som niečo zostaviť, použil som nasledujúcu postupnosť:

    . / Configure
    Vytvorte -j3 (počet jadier + 1)
    Cudzinec

    Použil som alíen, pretože vytvára binárny súbor skompilovaného programu, takže ho môžete nainštalovať do svojho systému ako ľubovoľný binárny súbor, a preto ak chcete odinštalovať, môžete jednoducho použiť synaptický alebo iného správcu balíkov, čo je výhodou vytvárania balíček a inštalácia balíka ako takého, namiesto vykonania príkazu „make install“

    1.    yukiteru dijo

      Vidím zlepšenie, prinajmenšom u veľkých a ťažkých balíkov, napríklad načítanie Libreoffice vo Funtoo trvá oveľa menej času ako v Debiane, to isté sa mi stalo s VLC alebo s mpv a MKV FullHD a multi-audio súbormi, zaťaženie je oveľa rýchlejšie.

      Ďalšou zmenou, ktorá tiež prešla, je Firefox, ktorý má v Debiane mučenie 10 alebo 15 kariet na mojom PC, ale pri Funtoo sa mi ho podarilo otvoriť až 30 a pokračuje akoby nič a spotreba barana je oveľa nižšia a menšia Keďže mám tendenciu zmraziť súbory JS, myslím si, že to závisí skôr od kontextu, ako sa niektoré úlohy a programy vykonávajú.

  42.   Marco Sarmiento dijo

    Problém je v tom, že keď ho stiahneme predkompilovaný, z akejkoľvek linuxovej distribúcie urobíme surovú kópiu systému Windows

  43.   Fermín dijo

    Viac ako v pozoruhodnom zvýšení výkonu vidím výhodu v možnosti kompilácie balíkov s komponentmi, ktoré chce človek: napríklad ak nemáte tlačiareň, môžete označiť, že balíčky s podporou CUPS nie sú kompilované - balíčky, ktoré používajú CUPS, samozrejme, ak kompilujete Hunspell s CUPS alebo bez nich, nebude to mať význam - stačí - aspoň v Gentoo- označenie v súbore make.conf, kde sú centralizované všetky možnosti pre vytváranie balíkov „-cups "; ak používate KDE5 alebo Plasma 5, ako sa im teraz hovorí, môžete určiť značky „-kde“, „-qt4“, ktoré boli platnými značkami pre KDE 4, ale nepotrebné v KDE 5 a aplikáciách prenesených na nový desktop, „-gnome“, „-Gtk“ atď. s ľubovoľným komponentom, o ktorom viete, že ho nepotrebujete. Ak konkrétny program z nejakého dôvodu potrebuje, povedzme GTK, môžete v súbore s názvom package.use uviesť, že používa GTK, napríklad pre Pidgin s rovnakým štítkom, ale bez znamienka mínus, to znamená, “ gtk »:« Net-im / pidgin gtk ».
    Týmto spôsobom sa systém dosiahne o niekoľko stoviek megabajtov ľahších a menších a efektívnejších binárnych súborov tým, že nebude mať nepotrebný kód. Prešiel som z Ubuntu do Gentoo cez Opensuse, Kubuntu, Debian, Arch, Chakra alebo KaOS a Gentoo je najrýchlejší systém, aký som mal, a stále mám rovnaké Core 2 Duo, ktoré som mal pred 7 rokmi. Samozrejme kompilácie nechávam na noc, pretože napríklad zostavenie QT5 trvá niekoľko hodín. Pokiaľ nastavíte parameter „niceiness“ pre Portage v make.conf, môžete inštalovať balíčky alebo aktualizovať, zatiaľ čo budete pokračovať v práci so strojom a takmer si nevšimnete veľké spomalenie, aj keď sa samozrejme čas kompilácie zvyšuje; ale no tak, s inštaláciou alebo aktualizáciou, keď idem na večeru, a ak je to potrebné nechať pracovať cez noc, môj starý počítač funguje lepšie ako I3 mojej priateľky s Kubuntu.

    Ďalším čoraz dôležitejším aspektom je, že pri kompilácii zo zdrojových súborov je takmer úplná bezpečnosť pôvodného balíka, ktorý inštalujeme, a ktorý nebol manipulovaný tretími stranami. Myslím si, že Debian implementuje systém overovania zostavenia, ktorý zaručí o niečo viac, ako predkompilovaný program, ktorý sme nainštalovali, skutočne pochádza z pôvodného zdroja, ale nikdy nebude taká istota, keď bude tento balík kompilovaný na našom počítači s naším nastavením.
    Podľa môjho názoru, s moderným procesorom, nie s račňou ako ja, hehe, a ak chceme proces urýchliť, s 8 GB RAM, aby bolo možné pripojiť / var / tmp - dočasný priečinok, ktorý používa Portage kompilácia- v RAM, ktorá bude vždy rýchlejšia ako pevný disk alebo SSD, dnes nevidím veľký zmysel v používaní predkompilovaných balíkov. Ak kompilácia môjho počítača Firefox trvá asi 40 minút, koľko času môže trvať pre I5 ​​alebo I7, ktoré sú momentálne na trhu, 5 minút, ešte menej? Hovorím o zdrojovom firefoxe, nie o firefox-bin, čo je predkompilovaný binárny balík, ktorý je možné nainštalovať na Gentoo, ak máte veľmi pomalý stroj - existuje niekoľko veľkých balíkov, ktoré sú už z tohto dôvodu ponúkané predkompilované, nie je to tak povinné zostaviť všetko -. Nemôžem hovoriť, pretože moja priateľka mi nedovolí hrať sa s jej počítačom, hehe, a môj ide tak dobre, že necítim potrebu ho obnovovať, ale ak mám pravdu povedať, myslím si, že to stojí za to premrhať niekoľko minút kompilácie, aby bol systém vyrobený na mieru. Viac prispôsobený a prispôsobený nášmu stroju si nemyslím, že je možné niečo dosiahnuť bez toho, aby sme sa pustili do tých Linuxových metód od nuly, Linuxu od nuly, ktorý je, myslím si, už vyhradený pre počítačových vedcov alebo veľmi pokročilých znalcov Linuxu.

    Zdravím.

  44.   pato dijo

    Veľmi dobre!
    jedna vec neexistuje «Amd Atom x2»
    ni existira je ochranná známka spoločnosti Intel
    ide o