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.
Keď si stiahnete program z repozitárov prostredníctvom Softvérového centra (napr. apt-get/Yumex/Yum/Pacman/atď.), automaticky sa nainštaluje a označí sa ako predkompilovaný na spustenie na všetkých možných procesoroch (Intel a AMD). Keďže ide o predkompilovaný program, stráca inštrukcie špecifické pre daný model procesora (predstavte si, že program ako Firefox alebo Chrome, ktoré majú viac ako 7 alebo 8 miliónov riadkov kódu, by musel obsahovať všetky špecifické inštrukcie pre každý procesor na trhu; množstvo kódu by bolo také veľké, že by program už nebol efektívny), pričom si zachová iba všeobecné inštrukcie svojho tvorcu (Intel, AMD, ARM).
Keď si stiahnete, rozbalíte a skompilujete zdrojový kód programu sami, skompiluje sa so špecifickými inštrukciami VAŠEHO procesora ( čo neznamená, že nebude fungovať na počítači s iným procesorom, iba že bude optimalizovaný špecificky a čisto pre váš procesor) , čím sa uvoľní a oslobodí všetok výkon, ktorý je váš procesor schopný poskytnúť vďaka svojim špecifickým inštrukciám.
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ý výkon dokáže váš starý počítač s procesormi AMD Atom x2 , Intel Core i3 , Core 2 Duo alebo inými . Teraz už chápete, prečo je kompilácia slávneho jadra (srdca každého operačného systému) vo svete Linuxu toľko diskutovaná? Predstavte si, že by ste mohli skompilovať celý systém špeciálne pre váš počítač (grafické prostredie (GNOME, KDE atď.), jadro, bežne používané programy (Firefox, VLC, Chrome, Wine atď.)) – akú úroveň rýchlosti a optimalizácie by ste dosiahli.
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! :).