Zakaj je bolje prevajati kot nameščati iz skladišč

V tem vodniku bom razložil (in vas naučil), zakaj je bolje, da program (recimo Firefox, Vlc itd.) Sestavite iz njegove izvorne kode, kot da ga prenesete (iz programskega centra, Yumex, Pacman itd.) ) in namestite.

Najprej gremo s teorijo:

Kaj je "prevajanje"?

Prevajanje je pretvorba izvorne kode (koda, napisana v določenem programskem jeziku, recimo C, C ++ itd.) V izvršljiv program za njeno delovanje z uporabo procesorja za pretvorbo jezika, uporabljenega za generiranje kode, v binarno in monter. Pogosto se imenuje tudi embalaža.

Zakaj je bolje "sestaviti"?

Najprej morate vedeti naslednje, da razumete, zakaj. Na "surov" način (preprost, ne preveč profesionalen itd.) Imajo vsaka rasa (Pentium, Core, Atom itd.) In njene vrste (Intel, AMD, ARM itd.) Procesorja navodila (programska oprema napisana v sestavljalniku). ki obdeluje kodo) svojega modela (Core i7, Core i5, Atom x2, Phantom x8, Arm itd.) in imajo tudi splošna navodila, ki jih imajo vse te vrste.

Ko prenesete iz repozitorijev prek programskega centra / apt-get / Yumex / Yum / Pacman / itd, program, ki se namesti samodejno, reče, da je to predhodno sestavljen za delovanje na vseh možnih procesorjih (Intel in Amd). Ker gre za vnaprej sestavljen program, se navodila, značilna za ta model procesorja, izgubijo (pomislite, da če bi moral program, kot je Firefox ali Chrome, ki ima več kot 7 ali 8 milijonov vrstic kode, dati vsa posebna navodila za vsako na trgu bi bila količina kode tako velika, da ta program ne bi bil več učinkovit) in ne bi pustil ničesar drugega kot splošni proizvajalčeve blagovne znamke (Intel, Amd, Arm).

Ko sami prenesete, razpakirate in prevedete izvorno kodo programa, se prevede s posebnimi navodili TU procesor, (kar ne pomeni, da ne bo delovalo na računalniku z drugim, ampak le, da bo optimizirano posebej in zgolj za vaš procesor), s čimer sprostite in sprostite vso moč, ki jo lahko daje vaš procesor, zahvaljujoč njegovim posebnim navodilom.

V podrobnejših tehničnih podrobnostih so ta posebna navodila tesno povezana s tako imenovanim naborom čipov vaše matične plošče, kar je velik glavobol za tiste, ki imamo Intel, ko želimo nadgraditi procesor in matično ploščo.

Presenečeni bi bili nad močjo, ki jo imate amd atom x2 ali ti Intel Core znotraj, 2 Core Duo, i3, itd iz vašega starega računalnika. Zdaj razumete, zakaj se v svetu Linuxa veliko govori o sestavljanju slavnega jedra (srca vsakega operacijskega sistema)? Predstavljajte si, če sestavite celoten sistem (grafično okolje (Gnome, Kde itd.), Jedro, najpogosteje uporabljeni programi (Firefox, Vlc, Chrome, Wine itd.), Posebej za vaš računalnik) vso hitrost in raven optimizacije, ki bi jo imeli.

To načelo prevajanja za pridobitev kode, optimizirane posebej za vaš računalnik, je tisto, ki ga uporabljajo distrosi, kot je Gentoo in izpeljani finančni instrumenti (o čemer zdaj ne bom govoril, uporabljam Fedoro minimalno s prevajanjem Gnoma 3, jedra in drugih programov) kjer so sistem, vaše posodobitve in programi vedno zbrani.

Proti sestavljanju:

Vse prednosti sem že razložil, toda kot vse v vesolju ima eno proti.

V primeru kompilacije so;

  • Čas, potreben za to (Firefox z i7 4790K (brez overclockinga, ker sem zelo slab z napetostmi), traja 3 minute, Gnome Shell (vrstica nič več) z Gnome-Control-Center mi je vzel približno 2 minuti, obe sta bili sestavljeni ob istočasno v Fedori. Toda na računalniku z manj zmogljivim procesorjem se lahko tokrat izjemno poveča).
  • Procesor porabi 100% svoje moči z vsemi svojimi jedri, zato poraba in vročina narasteta (upoštevajte to, če imate overclocking ali če gre predvsem za prenosnik), zato je priročno, da pripravite mate ali kavo. za to priložnost.
  • Morda vam manjka knjižnica (orodje), ki uporablja program, da ne bi prišlo do napak pri prevajanju. Na splošno imajo vsi distroji pakete ali nabore, da se temu izognejo (opremljeni so z različnimi knjižnicami in drugimi stvarmi, ki jedru omogočajo, da med procesom komunicira, kot bi moralo s procesorjem).

Kako lahko sestavim?

Za Debian (Ubuntu, Mint, Elementarni itd.) So vsi izpeljanke tega, zato sledite temu

Tukaj govorim o sestavljanju programa za normalno uporabo in ne jedra.

aptitude namestitev bistvenega dela dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep ardor

Sem dal debian-policy, če pa vaš distro ni Debian in se vam prikaže napaka, da tak paket ne obstaja, ga preprosto prezrite. Pojasniti moram, da teh sistemov že dolgo ne uporabljam, zato, če paketa ni več v skladiščih, ne delajte težav.

Za Fedoro:

sudo yum -y namestite glave jeder
jedro-razvoj
sudo yum groupinstall "Orodja za razvoj"
sudo yum groupinstall "Razvojne knjižnice"

Tu se moram opravičiti za tiste, ki uporabljajo Arch (ne poznam dobro distro-ja) in OpenSuse, saj teh distrostov ali ustreznih paketov ne poznam, da bi izvedel pravilno kompilacijo (in nisem potrdil, kaj je v omrežju, tako da za ta dva ne vem, če delujeta).

Zdaj, ko imate vse potrebne zahteve, morate prenesti samo izvorno kodo programa, ki ga želite sestaviti, odvisno od končnice, ki jo razpakirate s pomočjo terminala (ne skrbite, pustil vam bom ukaze) in ko greste v mapo (vedno s terminalom), naredite enako:

Če imate možnost, da se sami konfigurirate za izbiro komponent in drugih:

./configure

Nato vtipkate:

make

In na koncu, da namestite program na svoj linux:

make install

Vse to vedno s korenom (su v Fedori, sudo su v Ubuntuju in njegovih izpeljankah (Mint, Elementarni Os itd.)

Ukazi za razpakiranje s pomočjo terminala (datoteka je razpakirana v mapi, v kateri je datoteka):

.Tar datoteke (katran) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pakiranje | tar cvf file.tar / file / * Razpakiraj | tar xvf file.tar Ogled vsebine | tar tvf file.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (katran z gzipom ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pakiranje in zadrga | tar czvf archive.tar.gz / archive / Razpakiraj in razpakiraj | tar xzvf file.tar.gz Ogled vsebine (ni izvlečeno) | katran tzvf file.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Stisni | gzip -q datoteka (datoteka jo stisne in preimenuje v "file.gz") Unzip | gzip -d file.gz (Datoteka jo razpakira in pusti kot "datoteko"). Opomba: gzip stisne samo datoteke, ne pa tudi imenikov
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Stisni | datoteka bzip2 | Datoteka bunzip2 (Datoteka jo stisne in preimenuje v "file.bz2") Unzip | bzip2 -d datoteka.bz2 | bunzip2 file.bz2 (Datoteka jo razpakira in pusti kot "datoteko") Opomba: bzip2 stisne samo datoteke, ne pa tudi imenikov
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (katran z bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Stisni | datoteke tar -c | bzip2> file.tar.bz2 Razpakiraj | bzip2 -dc file.tar.bz2 | katran -xv | tar jvxf file.tar.bz2 (najnovejše različice tar) Ogled vsebine | bzip2 -dc file.tar.bz2 | katran -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Stisni | zip file.zip / mayo / archives Razpakiraj | unzip file.zip Ogled vsebine | unzip -v file.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Stisni | rar -a file.rar / maj / arhiv Razpakiraj | rar -x file.rar Ogled vsebine | rar -v file.rar | rar -l datoteka.rar

In to je vse. Lep pozdrav iz Buenos Airesa v Argentini. Lepe praznike in novo leto! :).


Dodaj kot prednostni vir v Googlu