U ovom kratkom vodiču objasnit ću (i naučiti vas) zašto je bolje da sastavite program (recimo Firefox, Vlc, itd.) Iz njegovog izvornog koda, nego da ga preuzmete (iz Software Center, Yumex, Pacman itd.) ) i instalirajte.
Prvo idemo s teorijom:
Što je "sastaviti"?
Kompiliranje je pretvaranje izvornog koda (koda napisanog na određenom programskom jeziku, recimo C, C ++, itd.) U izvršni program za njegovo djelovanje korištenjem procesora za pretvaranje jezika koji se koristi za generiranje koda u binarni i asembler. Često se naziva i ambalažom.
Zašto je bolje "sastaviti"?
Prvo morate znati sljedeće da biste razumjeli zašto. Rečeno na „sirov“ način (jednostavan, ne baš profesionalan, itd.), Svaka rasa (Pentium, Core, Atom, itd.) I njene vrste (Intel, AMD, ARM, itd.) Procesora imaju upute (softver napisan u asembleru koji obrađuju kod) svog modela (Core i7, Core i5, Atom x2, Phantom x8, Arm, itd.), a također imaju i opće upute koje imaju sve te vrste.
Kada preuzimate iz spremišta putem Softverskog centra / apt-get / Yumex / Yum / Pacman / itd., Program koji se automatski instalira naziva se ovaj precompiled za rad na svim mogućim procesorima (Intel i Amd). Budući da se radi o unaprijed kompiliranom programu, gube se one upute tipične za taj specifični model procesora (pomislite da ako su programi poput Firefoxa ili Chromea, koji imaju više od 7 ili 8 milijuna redaka koda, morali staviti sve posebne upute za svaki na tržištu, količina koda bila bi toliko velika da taj program više ne bi bio učinkovit) ne ostavljajući ništa više od općenitih marki svog tvorca (Intel, Amd, Arm).
Kada sami preuzmete, raspakirate i kompajlirate izvorni kod programa, on se sastavlja s određenim uputama programa TU procesor, (što ne znači da neće raditi na stroju s drugim, već samo da će biti optimiziran posebno i isključivo za vaš procesor), oslobađajući i oslobađajući svu snagu koju vaš procesor može dati zahvaljujući svojim specifičnim uputama.
U tehničkim detaljima, ove specifične upute usko su povezane s onim što je poznato kao čipset vaše matične ploče, što je velika glavobolja za one koji imamo Intel kada želimo nadograditi procesor i matičnu ploču.
Iznenadili biste se snazi koja vaša amd atom x2 ili ti Intel Core iznutra, Temeljni 2 duo, i3, itd. sa vašeg starog računala. Sad razumijete li zašto se u svijetu Linuxa puno govori o sastavljanju čuvene jezgre (srca svakog operativnog sustava)? Zamislite ako kompilirate cijeli sustav (grafičko okruženje (Gnome, Kde, itd.), Kernel, najčešće korišteni programi (Firefox, Vlc, Chrome, Wine, itd.), Posebno za vaše računalo) svu brzinu i razinu optimizacije koju biste imali.
Ovo načelo kompilacije za dobivanje koda optimiziranog posebno za vaš stroj je onaj koji koriste distro-i poput Gentoo-a i derivata (o čemu neću sada govoriti, koristim Fedoru minimalno sa kompilacijom Gnome 3, kernela i drugih programa) gdje se sustav, vaša ažuriranja i vaši programi uvijek prevode.
Protiv sastavljanja:
Već sam objasnio sve prednosti, ali kao i sve u svemiru ima i jednu protiv.
U slučaju kompilacije jesu;
- Vrijeme potrebno za ovo (Firefox s i7 4790K (bez overkloka, jer sam jako loš s naponima) traje 3 minute, Gnome Shell (traka ništa drugo) s Gnome-Control-Centerom trebalo mi je oko 2 minute, oba su sastavljena u u isto vrijeme u Fedori. Ali na stroju s manje moćnim procesorom ovaj put može biti nerazmjerno dugo).
- Procesor maksimalno koristi 100% snage sa svim svojim jezgrama, tako da potrošnja i toplina naglo rastu (uzmite to u obzir ako imate overclocking ili ako je posebno prijenosno računalo), pa je prikladno pripremiti mate ili kavu za tu priliku.
- Možda vam nedostaje knjižnica (alat) koja koristi program kako ne bi pogriješila u kompilaciji. Općenito, sve distribucije imaju svoje pakete ili skupove kako bi to izbjegli (oni su prepuni raznih knjižnica i drugih stvari koje jezgru omogućuju da tijekom procesa komunicira kako treba s procesorom).
Kako mogu kompajlirati?
Ovdje govorim o sastavljanju programa za normalnu upotrebu, a ne jezgre.
aptitude instalirati bitne dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep ardor
Stavio sam debian-policy, ali ako vaš distro nije Debian i ako vam se pojavi pogreška da takav paket ne postoji, jednostavno ga zanemarite. Moram pojasniti da se dugo nisam služio tim sustavima, pa ako paket više nije u spremištima, nemojte raditi probleme.
Za Fedoru:
sudo yum -y instaliraj zaglavlja jezgrezrno-razvojsudo yum groupinstall "Alati za razvoj"sudo yum groupinstall "Razvojne knjižnice"
Ovdje se moram ispričati za one koji koriste Arch (ne poznajem dobro distro) i OpenSuse, jer ne znam te distro niti odgovarajuće pakete da bih izveo ispravnu kompilaciju (i nisam potkrijepio ono što je na mreži, pa ne znam rade li za to dvoje).
Sad kad imate sve potrebne zahtjeve, trebate samo preuzeti izvorni kod programa koji želite kompajlirati, prema ekstenziji raspakirajte ga pomoću terminala (ne brinite, ostavit ću vam naredbe) i kad idete u mapu (uvijek s terminalom), radite isto:
Ako imate mogućnost da se konfigurirate za odabir komponenata i ostalih:
./configure
Zatim upišete:
make
I na kraju da instalirate program na vaš linux:
make install
Naredbe za raspakiranje pomoću terminala (datoteka se raspakira u mapi u kojoj se datoteka nalazi):
.Tar datoteke (katran) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pakiranje | tar cvf file.tar / file / * Raspakirajte | tar xvf file.tar Pogledaj sadržaj | tar tvf datoteka.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (katran sa gzipom ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pakiranje i patentni zatvarač | tar czvf file.tar.gz / file / Raspakirajte i raspakirajte | tar xzvf file.tar.gz Prikaz sadržaja (nije izvučen) | katran tzvf datoteka.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | gzip -q datoteka (datoteka se komprimira i preimenuje u "file.gz") Raspakirajte | gzip -d file.gz (Datoteka ga raspakuje i ostavlja kao "datoteku"). Napomena: gzip komprimira samo datoteke, a ne direktorije
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | bzip2 datoteka | datoteka bunzip2 (datoteka se komprimira i preimenuje u "file.bz2") Raspakirajte | bzip2 -d datoteka.bz2 | bunzip2 file.bz2 (datoteka ga raspakuje i ostavlja kao "datoteku") Napomena: bzip2 komprimira samo datoteke, a ne direktorije
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (katran s bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | tar -c datoteke | bzip2> file.tar.bz2 Raspakirajte | bzip2 -dc datoteka.tar.bz2 | katran -xv | tar jvxf file.tar.bz2 (najnovije verzije tar-a) Prikaz sadržaja | bzip2 -dc datoteka.tar.bz2 | katran -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | zip file.zip / mayo / archives Raspakirajte | raspakirajte datoteku.zip Pogledajte sadržaj | raspakirajte -v datoteku.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | rar -a file.rar / svibanj / arhiva Raspakirajte | rar -x file.rar Pogledaj sadržaj | rar -v datoteka.rar | rar -l datoteka.rar
I to je sve. Pozdrav iz Buenos Airesa, Argentina. Sretni blagdani i Nova godina! :)