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ť?
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 jadrakernel-develsudo 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
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! :).
Problém s kompiláciou je, že to nefunguje vždy na prvýkrát a je to zdĺhavejšie.
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.
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í?
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.
Ú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
¡Muy interesante!
Ak zostavujete program, ako potom fungujú aktualizácie? Sú automatické alebo si musíme byť vedomí toho, či vyšla nová verzia?
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é.
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.
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.
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.
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 🙂
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.
Má funkčnosť apt-build, aj keď si myslím, že nezostavuje závislosti, ale inštaluje predkompilované binárne súbory.
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é.
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.
S procesorom Intel i7 4790K a 18 GB RAM to, čo som už povedal, zabral
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.
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.
Ď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.
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!
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.
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
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.
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).
Článok je veľmi zaujímavý, ale žiadny pane, balenie a zostavenie nie je to isté;) ..
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
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
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.
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.
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.
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 😛
ľ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
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
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 )
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.
Ďakujeme za informácie, vždy je dobré sa učiť (alebo sa znovu učiť) (:
Debian s potešením pre Gentoo 🙂
http://crysol.org/es/node/699
Ď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?
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ú.
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.
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.
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.
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.
Ž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í?
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ť.
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é.
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í.
Č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
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 )
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/
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.
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.
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.
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.
Ď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.
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.
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.
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.
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!
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
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.
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í.
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“
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ú.
Problém je v tom, že keď ho stiahneme predkompilovaný, z akejkoľvek linuxovej distribúcie urobíme surovú kópiu systému Windows
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.
Veľmi dobre!
jedna vec neexistuje «Amd Atom x2»
ni existira je ochranná známka spoločnosti Intel
ide o