Proč je lepší kompilovat než instalovat z repozitářů

V tomto malém průvodci vám vysvětlím (a naučím vás), proč je lepší, když program (řekněme Firefox, Vlc atd.) Zkompilujete ze zdrojového kódu, než si jej stáhnete (z The Software Center, Yumex, Pacman atd.) ) a nainstalujte.

Nejprve jdeme s teorií:

Co je „kompilace“?

Kompilace transformuje zdrojový kód (kód napsaný v určitém programovacím jazyce, řekněme C, C ++ atd.) Na spustitelný program pro jeho provoz pomocí procesoru k převodu jazyka použitého ke generování kódu na binární a assembler. Často se mu také říká obal.

Proč je lepší „kompilovat“?

Nejprve musíte znát následující, abyste pochopili proč. Stručně řečeno (jednoduše, nepříliš profesionálně atd.), Každá rasa (Pentium, Core, Atom atd.) A její druhy (Intel, AMD, ARM atd.) Mají instrukce (software napsaný v assembleru, který zpracovává kód) svého modelu (Core i7, Core i5, Atom x2, Phantom x8, Arm atd.) a mají také obecné pokyny, které mají všechny svého druhu.

Při stahování z úložišť prostřednictvím Softwarového centra / apt-get / Yumex / Yum / Pacman / atd. Se říká, že program, který se instaluje automaticky, je tento předkompilovaný pro provoz na všech možných procesorech (Intel a Amd). Jelikož se jedná o předkompilovaný program, dojde ke ztrátě instrukcí typických pro tento konkrétní model procesoru (myslete na to, že pokud program jako Firefox nebo Chrome, který má více než 7 nebo 8 milionů řádků kódu, musel dát všechny konkrétní instrukce pro každý procesor na trhu, množství kódu by bylo tak velké, že by tento program již nebyl efektivní) a nezanechal nic jiného než obecné od jeho tvůrce značky (Intel, Amd, Arm).

Když si stáhnete, rozbalíte a zkompilujete zdrojový kód programu sami, kompiluje se podle konkrétních pokynů TU procesor, (což neznamená, že nebude fungovat na počítači s jiným, pouze že bude optimalizován konkrétně a čistě pro váš procesor), čímž uvolníte a uvolníte veškerý výkon, který je váš procesor schopen poskytnout díky jeho specifickým instrukcím.

Ve více technických detailech jsou tyto konkrétní pokyny úzce spojeny s takzvanou čipovou sadou vaší základní desky, což je velká bolest hlavy pro ty z nás, kteří mají Intel, když chceme upgradovat procesor a základní desku.

Byli byste překvapeni, jakou sílu má váš amd atom x2 nebo vy Intel Core uvnitř, 2 Core Duo, i3atd. ze starého počítače. Nyní chápete, proč se ve světě Linuxu hodně mluví o kompilaci slavného jádra (srdce každého operačního systému)? Představte si, že pokud zkompilujete celý systém (grafické prostředí (Gnome, Kde atd.), Jádro, běžně používané programy (Firefox, Vlc, Chrome, Wine atd.), Zejména pro váš počítač), veškerou rychlost a úroveň optimalizace, které byste měli.

Tento princip kompilace k získání kódu optimalizovaného speciálně pro váš počítač je ten, který používají distribuce jako Gentoo a deriváty (o kterých teď nebudu mluvit, používám Fedoru minimal s kompilací Gnome 3, jádra a dalších programů), kde je systém , vaše aktualizace a vaše programy jsou vždy kompilovány.

Nevýhody kompilace:

Už jsem vysvětlil všechny výhody, ale jako všechno ve vesmíru má jednu proti.

V případě kompilace jsou;

  • Čas potřebný k tomu (Firefox s i7 4790K (bez přetaktování, protože jsem velmi špatný s napětím) trvá 3 minuty, Gnome Shell (bar nic jiného) s Gnome-Control-Center mi trvalo asi 2 minuty, obě byly kompilovány na stejný čas ve Fedoře. Ale na stroji s méně výkonným procesorem může být tento čas neúměrně dlouhý).
  • Procesor využívá 100% svého výkonu se všemi jádry na maximum, takže spotřeba a teplo prudce vzrostou (vezměte to v úvahu, pokud máte přetaktování nebo pokud se jedná zejména o notebook), takže je vhodné připravit si kamaráda nebo kávu pro tuto příležitost.
  • Možná vám chybí knihovna (nástroj), která používá program, aby při kompilaci nedošlo k chybě. Obecně platí, že všechny distribuce mají své balíčky nebo sady, aby se tomu vyhnuly (jsou baleny s různými knihovnami a dalšími věcmi, které jádru umožňují během procesu komunikovat s procesorem tak, jak by mělo).

Jak mohu kompilovat?

Pro Debian (Ubuntu, Mint, Elementary atd.) Jsou to vše odvozené, takže postupujte podle toho

Tady mluvím o kompilaci programu pro normální použití, ne jádra.

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

Dal jsem debian-policy, ale pokud vaše distribuce není Debian a dává vám chybu, že žádný takový balíček neexistuje, prostě jej ignorujte. Musím objasnit, že jsem tyto systémy dlouho nepoužíval, takže pokud balíček již není v úložištích, nedělejte problém.

Pro Fedoru:

sudo yum -y nainstalovat záhlaví jádra
kernel-devel
sudo yum groupinstall "Vývojové nástroje"
sudo yum groupinstall "Vývojové knihovny"

Zde se musím omluvit za ty, kteří používají Arch (nevím dobře distribuci) a OpenSuse, protože neznám tyto distribuce ani příslušné balíčky, abych provedl správnou kompilaci (a nepotvrdil jsem, co je v síti, takže že pro ty dva nevím, jestli fungují).

Nyní, když máte všechny potřebné požadavky, stačí si stáhnout zdrojový kód programu, který chcete zkompilovat, podle rozšíření jej rozbalíte pomocí terminálu (nebojte se, nechám vám příkazy) a když přejdete do složky (vždy s terminálem), uděláte totéž Následující:

Pokud máte možnost konfigurovat se, abyste vybrali komponenty a další:

./configure

Pak zadáte:

make

A nakonec nainstalujte program na svůj linux:

make install

To vše vždy s rootem (su ve Fedoře, sudo su v Ubuntu a jeho derivátech (Mint, Elementary Os atd.)

Příkazy k rozbalení pomocí terminálu (soubor je rozbalen ve složce, kde je soubor umístěn):

.Tar soubory (tar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Balíček | tar cvf file.tar / file / * Rozbalit | tar xvf file.tar Zobrazit obsah | tar tvf file.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (tar s gzip ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Balení a zip | tar czvf archive.tar.gz / archive / Rozbalit a rozbalit | tar xzvf file.tar.gz Zobrazit obsah (ne extrahovaný) | tar tzvf file.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimovat | soubor gzip -q (soubor komprimuje a přejmenuje jej na "file.gz") Rozbalte | gzip -d file.gz (Soubor jej rozbalí a ponechá jej jako „soubor“ Poznámka: gzip komprimuje pouze soubory, nikoli adresáře.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimovat | soubor bzip2 | soubor bunzip2 (Soubor jej komprimuje a přejmenuje na "file.bz2") Rozbalit | bzip2 -d soubor.bz2 | bunzip2 file.bz2 (soubor jej rozbalí a ponechá jej jako „soubor“) Poznámka: bzip2 komprimuje pouze soubory, nikoli adresáře
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (dehet s bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimovat | soubory tar -c | bzip2> file.tar.bz2 Unzip | bzip2 -dc soubor.tar.bz2 | tar -xv | tar jvxf file.tar.bz2 (nejnovější verze tar) Zobrazit obsah | bzip2 -dc soubor.tar.bz2 | tar -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimovat | zip file.zip / mayo / archive Unzip | rozbalit soubor.zip Zobrazit obsah | rozbalte -v soubor.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -. .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Komprimovat | rar -a file.rar / may / archive Unzip | rar -x soubor.rar Zobrazit obsah | rar -v soubor.rar | rar -l soubor.rar

A to je vše. Zdravím vás z Buenos Aires v Argentině. Příjemné svátky a nové roky! :).


Přidat jako preferovaný zdroj v Googlu