Zašto je bolje kompajlirati nego instalirati iz spremišta

U ovom malom 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 The Software Center, Yumex, Pacman itd.) ) i instalirajte.

Prvo idemo s teorijom:

Šta je "kompajliranje"?

Kompajliranje je pretvaranje izvornog koda (koda napisanog na određenom programskom jeziku, recimo C, C ++, itd.) U izvršni program za svoj rad pomoću procesora za pretvaranje jezika koji se koristi za generiranje koda u binarni i asembler. Često se naziva i ambalažom.

Zašto je bolje "kompajlirati"?

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 imaju i opće upute koje imaju sve te vrste.

Kada preuzmete iz spremišta putem Softverskog centra / apt-get / Yumex / Yum / Pacman / itd., Program koji se instalira automatski kaže da je ovo predkompolirani za rad na svim mogućim procesorima (Intel i Amd). Kako 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 miliona redaka koda, morali staviti sve posebne upute za svaki procesora 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 kompajlira s određenim uputama programa TU procesor, (što ne znači da neće raditi na mašini s drugom, već samo da će biti posebno i čisto optimizirana 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 moći koje imate Amd Atom x2 ili ti Intel Core Unutra, Core 2 Duo, i3, itd. sa vašeg starog računara. Sad razumijete li zašto se u svijetu Linuxa puno govori o sastavljanju čuvenog Kernela (srca svakog operativnog sistema)? Zamislite ako kompajlirate čitav sistem (grafičko okruženje (Gnome, Kde, itd.), Kernel, najčešće korišteni programi (Firefox, Vlc, Chrome, Wine, itd.), Posebno za vaš računar) svu brzinu i nivo optimizacije koji biste imali.

Ovaj princip kompilacije za dobivanje koda koji je optimiziran posebno za vašu mašinu 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 sistem, 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;

  • Potrebno vrijeme za ovo (Firefoxu s i7 4790K (bez overkloka jer sam jako loš s naponom) traje 3 minute, Gnome Shell-u (traka više ništa) s Gnome-Control-Center-om trebalo je oko 2 minute, oba su sastavljena u u isto vrijeme u Fedori. Ali na mašini s manje moćnim procesorom ovaj put može biti nesrazmjerno 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 je to posebno prijenosno računalo), pa je prikladno pripremiti mate ili kavu za tu priliku.
  • Možda vam nedostaje biblioteka (alat) koja koristi program tako da ne pogreši u kompilaciji. Općenito, svi distro-i imaju svoje pakete ili skupove kako bi to izbjegli (oni su prepuni raznih biblioteka i drugih stvari koje omogućavaju kernelu da komunicira kako treba s procesorom tokom procesa).

Kako mogu kompajlirati?

Za Debian (Ubuntu, Mint, Elementarni, itd., Oni su svi derivati ​​ovoga pa slijedite ovo

Ovdje govorim o kompajliranju programa za normalnu upotrebu, a ne kernela.

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 greška da ne postoji takav paket, jednostavno ga zanemarite. Moram pojasniti da dugo nisam koristio ove sisteme, pa ako paket više nije u spremištima, nemojte praviti problem.

Za Fedoru:

sudo yum -y instaliraj zaglavlja jezgra
kernel-razvoj
sudo yum groupinstall "Alati za razvoj"
sudo yum groupinstall "Razvojne biblioteke"

Ovdje se moram ispričati za one koji koriste Arch (ne poznajem dobro distro) i OpenSuse, jer ne znam ove distro niti odgovarajuće pakete da bih izveo ispravnu kompilaciju (i nisam potkrijepio ono što je na mreži, pa da za to dvoje ne znam rade li).

Sad kad imate sve potrebne zahtjeve, trebate samo preuzeti izvorni kod programa koji želite kompajlirati, ovisno o ekstenziji koju otpakujete pomoću terminala (ne brinite, ostavit ću vam naredbe) i kada idete u mapu (uvijek s terminalom) radite isto sljedeće:

Ako imate mogućnost da se konfigurirate za odabir komponenata i ostalih:

./configure

Zatim ukucate:

make

I na kraju da instalirate program na vaš linux:

make install

Sve to uvijek s root-om (su u Fedori, sudo su u Ubuntuu i njegovim izvedenicama (Mint, Elementarni Os, itd.)

Naredbe za raspakiranje pomoću terminala (datoteka se raspakuje u fascikli u kojoj se datoteka nalazi):

.Tar datoteke (tar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pakiranje | tar cvf file.tar / file / * Raspakirajte | tar xvf file.tar Pogledaj sadržaj | tar tvf file.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (katran sa gzipom ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pakiranje i patentni zatvarač | tar czvf file.tar.gz / file / Raspakirajte i raspakujte | tar xzvf file.tar.gz Pogledaj sadržaj (nije izvučen) | tar tzvf file.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | gzip -q datoteka (datoteka se komprimuje 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 komprimuje i preimenuje u "file.bz2") Raspakirajte | bzip2 -d file.bz2 | bunzip2 file.bz2 (Datoteka ga raspakuje i ostavlja kao "datoteku") Napomena: bzip2 komprimira samo datoteke, a ne direktorije
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (katran sa bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | tar -c datoteke | bzip2> file.tar.bz2 Raspakirajte | bzip2 -dc file.tar.bz2 | tar -xv | tar jvxf file.tar.bz2 (najnovije verzije tar-a) Prikaz sadržaja | bzip2 -dc file.tar.bz2 | tar -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | zip file.zip / mayo / archives Raspakirajte | unzip file.zip Pogledaj sadržaj | unzip -v file.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Compress | rar -a file.rar / svibanj / arhiva Raspakirajte | rar -x file.rar Pogledaj sadržaj | rar -v file.rar | rar -l file.rar

I to je sve. Pozdrav iz Buenos Airesa, Argentina. Srećni praznici i Nova godina! :)


Sadržaj članka pridržava se naših principa urednička etika. Da biste prijavili grešku, kliknite ovdje.

67 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Gonzalo rekao je

    Problem s kompajliranjem je što ne radi uvijek prvi put i zamorniji je.

    1.    Cristian rekao je

      Problem s kompajliranjem je u tome što ako nemate stari i ograničeni računar, poboljšanja neće biti primjetna ... dobro, možda je to na računaru s intenzivnom upotrebom opcija, ali za većinu korisnika to je samo dosadan proces.

      1.    Danijel rekao je

        Mislim da je to srž stvari. Je li poboljšanje performansi koje će se primjetiti prilikom sastavljanja paketa toliko važno da bi trebalo vremena i gnjavaže oko ovog zadatka u pozadinu?

      2.    joaco rekao je

        Isto ako imate i7 za kompajliranje, prikladno je, jer je brži i pretpostavljam da radi nešto bolje. Sada s računalom s Intelovim atomom to nije zgodno, osim ako vam zaista nije potrebna dodatna snaga koju kompajliranje daje, ali kompajliranje programa s manje moćnim procesorom može potrajati satima.

    2.    Avrah rekao je

      Potpuno se slažem, dogodilo mi se da kompajliram i nakon nekog vremena saznam da vam nedostaje biblioteka, pratite je i da se morate suočiti s postupkom ... Rijetko kada sve uspije u prvom pokušaju ... xD

  2.   FerGe rekao je

    ¡Muy interesante!

    Ako kompajlirate program, kako naknadno rade ažuriranja? Da li su automatski ili moramo biti svjesni je li izašla nova verzija?

    1.    Antonio Campos rekao je

      Morate ga ažurirati ručno, što znači da je sastavljanje najnovije verzije, što je još jedan recimo "nedostatak", za koji takođe čini nešto zamorno

    2.    jlbaena rekao je

      Kako ažuriranja ne postoje, zapravo Linux distribucije i njihovi različiti načini pakiranja softvera i odgovarajući upravitelji paketa uklanjaju neugodnosti ponovnog prevođenja za svako novo ažuriranje (i rješavanje zavisnosti).

      Pozdrav.

    3.    joaco rekao je

      Ako ga kompajlirate preuzimanjem izvornog koda s bilo koje stranice, to morate učiniti ručno i naučiti kako ga instalirati jer nisu sve instalirane na isti način.
      Ako imate Gentoo ili neki distro sa portovima, to radite iz spremišta gotovo automatski.

    4.    Fermin rekao je

      U Gentoo-u, vaš upravitelj paketa, Portage, brine o ažuriranjima i zavisnostima; Ne znam za druge distribucije. Naravno, svako ažuriranje očigledno uključuje ponovno sastavljanje.

  3.   Tanrax rekao je

    Bilo je vrijeme kada sam sastavio sve što sam mogao. Tada sam se umorio, posebno zbog vremena koje sam morao posvetiti radnoj mašini (45 minuta za jezgru, 10 minuta za hrom ...) i zbog vremena koje sam proveo u rješavanju problema koji su se pojavili u hodu. Pored toga, osobno nisam primijetio povećanje performansi, imao sam osjećaj da je sve isto. Iz ovih razloga sada koristim sve prekompajlirano, sve je trenutno i bez sukoba. Iako sam tada puno naučio, želio sam koristiti gentoo 🙂

  4.   Emmanuel rekao je

    Čak, i to je nešto što sam malo vidio, može se kompajlirati iz sistema poput apt. Dodajte zastavicu gradnje u apt-source i voila. Naravno, prije toga, instaliranje potrebnih paketa za izvođenje kompilacija, inače ne funkcionira ... iako je to izravniji oblik kompilacije i koji uključuje manje koraka, jer samo prvi put preuzima instalaciju paketa i slijedeće ispunjene zavisnosti i paket kao takav.

    Pozdrav.

    1.    joaco rekao je

      Ima funkciju apt-build, iako mislim da ne kompajlira zavisnosti, već instalira prethodno kompajlirane binarne datoteke.

  5.   xikufrancesc rekao je

    Od prvog trenutka kad sam vidio naslov, nisam mogao ne pomisliti isto, a nakon što sam pročitao cijeli izvrstan članak, imam na umu ideju, obilazeći hiljadu puta, Gentoo ... Gentoo, gdje si?
    sastavljanje je prekrasno, moći uživati ​​u određenim značajkama i koristiti ih je neprocjenjivo, ali vrijeme i "trenutne potrebe" su neoprostivi, jer se ne primjenjuju.
    Možda nam treba nešto u sredini, gdje ni biblioteke ni detalji u promjeni verzije neće izgubiti toliko vremena. Vidjet ćemo što će se tada dogoditi ili ako se zaista primijenimo na kompajliranje na aptitude, uprmi i zypper koje smo već instalirali.

  6.   anonimo rekao je

    3 minute firefox! .... Jeste li mislili 30?

    Na mom računalu je trebalo neko vrijeme sa fx8350 na 4.5G, koristim gentoo.
    $ genlop -t firefox | rep -n3
    Sub 6. decembra 20:00:00 2014 >>> www-client / firefox-34.0.5-r1
    vrijeme spajanja: 16 minuta i 35 sekundi

    Ove se upute specifične za svaki procesor nazivaju mnemotehnikom i fizički se implementiraju u mikroprocesor, one su ono što sačinjava mašinski jezik, dakle sastavljanje tako da program može raditi na mnogim vrstama mikroprocesora, ako ili ako moraju biti ograničeni na najmanja količina uobičajenih mnemotehničkih uređaja koje podržavaju svi ti mikroprocesori ... trošeći stvarni kapacitet najaktuelnijih i najsnažnijih mikroprocesora.
    Tako to rade kompanije i gnu / linux binarni distributeri.

    1.    Shyancore rekao je

      Meni je sa Intelom i7 4790K sa 18 GB RAM-a trebalo ono što sam već rekao

      1.    anonimo rekao je

        Razumijem da je mikro mikrofon koji imate superiorniji, ali razlika je bezdana, istina mora biti savana tom brzinom. Možda je to nešto povezano sa zavisnostima ili USE-ima koji su isti kao opcije konfigurisanja prilikom ručnog prevođenja.

      2.    Johnny rekao je

        Mali detalj koji ste izbjegli rekavši 18 GB Rama osim i7-a, nemaju svi tu mašinu, ali mogli biste napraviti benchmarking tako da je razlika primjetna, jer je teorija lijepa, ali da vidimo hoće li to nadoknaditi.

      3.    Cristian rekao je

        Još jedan sjajan detalj, procesor je Intel, stoga ima najbolju pomičnu zarez neovisno o modelu, vrlo relevantnu značajku za izvođenje ove vrste procesa

    2.    Ezequiel rekao je

      Istina, sastavljanje je zamorno. Ali puno toga naučite negirajući Makefile, biblioteke itd. Dobro je to učiniti i nekoliko puta. Koristim sve prethodno kompilirano iz istog razloga koji je naveo Tanrax.

      Pozdrav iz Argentine!

  7.   Erick carvajal rekao je

    Problem koji uglavnom imam pri pokušaju kompajliranja potpuno novih verzija programa uvijek je zbog zavisnosti, ponekad je potrebno kompajlirati sve (da biste došli do najnovijih verzija), a zatim razmisliti o mogućnosti kompajliranja onoga što želite.

    Problemi s PATH-om i ZASTAVE su stvari koje me i dalje sprječavaju da želim sve kompajlirati (iako to obično radim kako mogu). Jedan od alata s kojim se obično savjetujem da bih mogao kompajlirati zavisnosti je sljedeći web - http://www.linuxfromscratch.org/ -

    #LinuxFromScratch je projekt koji pruža upute "korak po korak" za kompajliranje izvornog koda koji trebate koristiti na sistemu .. (98% onoga što mi je potrebno za kompajliranje postigao sam vodeći me odavde i postepeno učenje).

    Kao dodatnu točku mislim da bi sastavljanje sistema od 0 bilo zanimljivo, posebno za razvojna okruženja ili servere, između ostalog za koje kažemo da "obično nisu toliko promjenjivi" kao osobno računalo u koje stalno instaliramo i mijenjamo sve (to je moje stanovište), pored činjenice da je minimum performansi koji se postižu u ovoj vrsti korištenja aplikacija vrlo važan.

    To su točke o kojima se u današnje vrijeme govori vrlo malo i samo "učenjaci" uspijevaju, ali zanimljivo je dati ovakvim stvarima vodiče koji su im potrebni, tako da svaki dan pronalazimo više ljudi koji doprinose pomoći različitim zajednicama u kojima sudjeluju i ne samo da Gnu / Linux ostaje u vremenu zbog slabih performansi suradnika, iako iako je do sada "radio na ovaj način" nije baš zdravo imati samo krajnje korisnike.

  8.   Rabuda Eagle rekao je

    Dopustite mi mali dodatak. Da biste dobili prednosti koje ovdje predstavljate, morate pravilno konfigurirati dobro poznati make.conf. Tamo su naznačene familija procesora i zastave kompilacije. Slično tome, tamo možete odrediti broj jezgri koje će se koristiti tijekom kompilacije. Kada koristite sve jezgre mikrofona, vrijeme sastavljanja drastično se smanjuje.

    Hvala!

  9.   Sebastian rekao je

    Vrlo dobar članak. I ja bih volio primjer ili bih želio post o tome kako kompajlirati u archlinuxu ili kako koristiti AUR. Sretna Nova godina od Mendoze.

  10.   TheGuillox rekao je

    Davno ... Uvijek sam kompajlirao jezgru, ali vrlo je zamorno čekati 40min: / u svakom slučaju ... Već dugo nisam kompajlirao ništa osim video drajvera (samo za posebne konfiguracije).

  11.   Alejandro rekao je

    Članak je vrlo zanimljiv, ali ne gospodine, pakovanje i kompajliranje nije isto;) ..

  12.   c4explosive rekao je

    Vrlo dobar post. Slažem se sa sastavljanjem određenih programa, ali ponekad je to pomalo zamorno pa je potrebna mašina da odradi proces. Ali osim toga, puno se nauči, posebno kada su potrebne biblioteke ili paketi.
    Mislim da vam je za Archlinux potreban sljedeći paket: base-devel
    pacman -S baza-razvoj

  13.   ratakill rekao je

    Informacije su vrlo dobre, ali istina je da ih nije potrebno kompajlirati, ako ste standardni korisnik i želite samo da nešto tako radi, nemojte to ni dirati. Dosadno je kompajlirati, uvijek, uvijek kažem da vam nedostaje biblioteka, nađete jedan ili drugi problem, recite mi da sastavim minecraft server tako da sve bude što bolje i da vam uzmem vrijeme ... osim što svaki put kad izađe ažuriranje ili zakrpa ili bilo što drugo, počnite ponovo kompajlirati xd

    1.    kik1n rekao je

      Tačno, kompajliranje je za vrlo specifične programe koji su vam potrebni za optimalnu upotrebu, jer je kompajliranje svega, a kako kažete, uvijek postoje nadogradnje, uglavnom distrovizirani izdanja, dosadno. Preporučio bih samo lts kernel.

  14.   FedoraUser rekao je

    Danas gotovo svi procesori koje ljudi koriste podržavaju iste upute, stoga je sastavljanje povoljno samo kada je u pitanju jezgra i u sustavu kao što je server, da, a očito je da kad nema prethodno kompajliranih paketa, sve ostalo je gubljenje vrijeme.

  15.   Juan Mera rekao je

    Dobar doprinos, pokušat ću vidjeti kako to ide, do sada većinu vremena (gotovo uvijek) instaliram iz spremišta ...
    Malo zapažanje: Opcije komande rar nisu skriptirane, a bunzip2 se samo raspakuje.

  16.   santiago rekao je

    Maksimalno što sam kompajlirao bio je kernel za debian wheezy i trebalo mi je oko 2 sata (imam amd e450 1.6 ghz dvojezgreni procesor) i upravo zato ne instaliram gentoo, vrijeme je za kompajliranje i preuzimanje cijelog sustav bi mi trebao oko 18 sati i da ako nemam problema, istina je da je bolje kompajlirati, ali većinu vremena potrebno je previše i mislim da to ne vrijedi. Imate pojačanje brzine, ali nije puno i mislim da ne opravdava svo uloženo vrijeme. Iako ću jednog dana imati računalo s procesorom kao što je vaš, pokušat ću instalirati gentoo 😛

  17.   Vampii rekao je

    Ljudi:

    Bez namjere plamena ili bilo čega drugog, lijenici smatraju prirodnim da kompajliraju, generiraju binarnu datoteku, instaliraju je s odgovarajućim upraviteljem paketa (koji očito rješava zavisnosti, slapt-get, swaret, slackyd i / ili nekoliko drugih), sa svime optimiziranim za naš tim i kao da ništa, što nije ništa o čemu se može pisati kući ili kvantna fizika.

    Gledanje DVD-a bez naleta na P3 750MHz sa 192MB RAM-a nije ni nemoguće ni teško postići preko Slackware-a. Potvrđujem, i to je brže od sastavljanja Gentoo-a. Ali nije isto, koristim i Gentoo.

    Razlika između hakera i potrošača je u tome što potrošač kaže "Volio bih da to tako funkcionira" i haker "Imam odvijač i nekoliko minuta" - Rael Dornfest

  18.   Pepenrike rekao je

    Da li je zaista uočljivo poboljšanje performansi?
    Sa zadnjom generacijom i7 i 18 Gb RAM-a, kako primjećujete razliku između kompiliranih paketa i binarnih datoteka?

    Oduvijek sam mrzio prikladnost samokompajlirajućih paketa, ali mislim da je u današnjem okruženju radne površine vrlo složeno održavati ga, posebno zbog složenosti zavisnosti, kontinuiranih ažuriranja i ogromne ovisnosti o neslobodnim izvori., kao u slučaju vlasničkih pokretača, koji nesumnjivo utječu na performanse mnogo više od bilo kojeg aspekta koji se može kompilirati ...

    Saludos

    1.    Shyancore rekao je

      Uzimajući u obzir da ga Gnome 3 samo kompajlira (imena ću reći sirovo, jer se imena paketa ne sjećam): ljuska (traka), gnome-control-center (kompletan, sa svojim zavisnostima, itd.), Aplet za vrijeme i oko 2 ili 3 zavisnosti za rad ljuske. Očigledno je da je ljuska zahtijevala više zavisnosti da bi sve njene funkcije radile, ali to me dovelo do kompajliranja GDM-a, popravio sam to modificirajući ga sa GConf jednom kad je ljuska kompajlirana.
      Sada kada se prijavim (putem terminala), okruženju je potrebno puno manje vremena za učitavanje nego kada je instalirano prekompajlirano. Bacanje vremena u zrak, na prekompajlirani način, mislim da je trebalo oko 3 ili 4 sekunde da se učita školjka (s oko 5 u kojima je prikazana pozadina, nikad nisam razumio zašto je trebalo toliko vremena, čini mi se da je zbog vozača s GT 630) i kompajliran čim sam unijeo lozinku X org se pokreće i okruženje se učitava (s predopterećenjem i prelinkom učinio sam ih mnogo bržim, čini mi se da je to zato što su proslijeđeni predmemorija; https://www.google.com.ar/search?q=preload+y+prelink+fedora&ie=utf-8&oe=utf-8&gws_rd=cr&ei=iXaqVPykO4qYNpbTgdAP )

    2.    Mario rekao je

      Činjenica da i7 ima ss4 i ss3 upute, koje se zanemaruju generičkim verzijama iz različitih distro-a (debian kompajlira za 486, ubuntu za 686), može vam dati ideju kada se troši hardver pokušavajući obuhvatiti 20 godina star procesor - možda hvala na podršci mom starom pentiumu mmx-. Ako su vam potrebni "vlasnički upravljački programi", kao što ste spomenuli, kernel pruža mogućnost učitavanja određenog firmvera u vrijeme kompilacije. Nema više čudnih problema s xorg-om.

  19.   Fabian Alexis rekao je

    Hvala na informacijama, uvijek je dobro naučiti (ili ponovo naučiti) (:

  20.   Javier rekao je

    Debian rado Gentoo 🙂
    http://crysol.org/es/node/699

  21.   Yuan šest rekao je

    Još jedan nedostatak je taj što je kompilacija terminala za korisnike koji znaju ili već imaju određeno znanje o Linuxu. Postoji li grafički alat koji ne upravlja kompilacijom, instalacijom i ažuriranjem programa već grafički?

    1.    Mario rekao je

      Izračunajte da Linux to radi, to je gentoo s grafičkim alatima spremnim za kompajliranje. U Phoronixu to obično preporučuju.

  22.   José rekao je

    Korisnik sam linuxa, ponekad kada želim instalirati program iz spremišta, instaliraju se stare verzije programa, jednostavno zato što nove nisu kompajlirane za dotični distro, mislim da je neophodno znati kako kompajlirati, čak i više kada se koriste rijetki distros.

  23.   joan rekao je

    Sve što piše u postu je u redu i ne sumnjam da je istina, ali razlika u performansama između instaliranja binarnog paketa i samog sastavljanja neprimjetna je za korisnika.

    A nedostaci kompajliranja su mnogi i ako su jasno uočljivi za korisnika. Stoga lično koračam prema kompajliranju.

  24.   NauTiluS rekao je

    Tamo gdje sam primijetio najviše performansi prilikom kompajliranja jezgre, to je bilo na prijenosnom računalu s procesorom AMD 64. Promjena između tvorničkog i kompajliranog jezgra bila je brutalna.

    Trenutno na svom sistemu imam tvorničko jezgro, jer kako ovdje puno govore, bilo je vrijeme kada sam kompajlirao gotovo sve i umorio sam se.

    Trenutno kompajliram samo neke vitalno važne programe, poput upotrebe malog servera ili igranja s emulatorima. Nedavno sam objavio post o tome kako sastaviti mame verziju. Ovi su programi općenito ako primijetite kada je optimiziran za vaš sistem.

    Samo moram isprobati taj gentoo distro i vidjeti kako ide izvedba.

  25.   NauTiluS rekao je

    Zaboravio sam dodati, ljudima koji dugo kompajliraju jezgru, više od 30 minuta, postoji nekoliko trikova kako to učiniti za manje vremena.

    Jedan od tih trikova je da vam se čini samo sastavljanje modula vaše opreme, maksimalno, možda najviše 70 modula, a ako dodamo podršku iptables-a sa svim njegovim zahtjevima, mislim da bi se povećala na 300 modula. Hajde, to je puno bolje od kompajliranja 3000 i malo modula, brojka koja trenutno djeluje ako su moduli jezgre kompajlirani onako kako dolaze iz tvornice ili kako se to kaže, vanilije.

    Program koji će vam pomoći da znate koje module kernel trenutno prepoznaje na vašem sistemu je "localmodconfig" ili upotrebom ove skripte "streamline_config.pl" koja se nalazi unutar direktorija izvornog jezgra, na putu "/ scripts / kconfig /»

    Naravno, pripazite da ste povezali sve svoje USB uređaje, jer kada kernel prepozna sve vaše module, samo je stvar u kompajliranju.

    Jezgra će biti vrlo lagana i u sistemu će se osjetiti određena svježina, kao i što će ubrzati pokretanje i gašenje sistema.

    Pozdrav.

  26.   Tabris rekao je

    Život nije tako lak! postoje programi koji koriste cmake ili druge stvari, a ažuriranje i kompajliranje svega zahtijeva vrijeme. A ako imate takav CPU, kakva će vam razlika biti?

  27.   Jo jo rekao je

    Problem s kompajliranjem je taj što se neki programi koje instaliramo tom metodom tada ne deinstaliraju ili pri tome daju greške, pa ih ne možemo deinstalirati.

    1.    anonimo rekao je

      Morate spremiti mapu s kompajliranim izvorima, kada želite deinstalirati, sve što trebate je otići u direktorij source i sa terminala kao root izvršiti:

      # napravi deinstalaciju

      Naravno, paketi kompajlirani ručno prema zadanim postavkama u svakoj ozbiljnoj distro distribuciji instaliraju se odvojeno, to jest u / usr / local / bin, a ne u / usr / bin, gdje ih upravitelj paketa distro distribuira po defaultu, tako. ništa nije isprepleteno.

  28.   freebsddick rekao je

    Članak pokreće nekoliko zanimljivih stvari, ali mu nedostaju užasni kvaliteti u smislu i logičkoj strukturi.

    «U izvršnom programu za svoj rad upotrebom PROCESORA za konverziju jezika koji se koristi za generiranje koda u binarni i asembler. Često se naziva i ambalažom. "

    Netačno. se zapravo koristi, kompajler je odgovoran za prosljeđivanje uputa određenog programskog jezika odgovarajućem u asemblerskom jeziku, a zatim ih prevodi na mašinski jezik.

    Asemblerski jezik je mnemotehnika koja odražava grupu uputa koje se nalaze u registrima čipa.

    "Kada sami preuzmete, dekomprimirate i kompajlirate izvorni kod programa, on se sastavlja s određenim uputama VAŠEG procesora"

    Prilikom kompajliranja programa to će se jednostavno obaviti s uputama zajedničkim arhitekturi, ovisi o svakom korisniku da aktivira odgovarajuće zastavice kompajlera za optimizaciju programa za određeni procesor.

    Što se tiče komentara na kompajliranje kernela:
    Kada kompajlirate jezgru, tražite da aktivirate ili deaktivirate funkcije koje mogu ili ne moraju biti korisne u određeno vrijeme, što se neće nužno odraziti na odnos veličine i brzine u izvršnom opterećenju.

    Kada se pozivate na sljedeći odjeljak:

    dh-make devscripts fakeroot debhelper debian-policy ccache dh-autoreconf autotools-dev build-dep

    Ovi programi nisu bitni za sastavljanje programa. Kao što ste pokušavali reći na početku, količina programskih jezika sprečava vas da sa sigurnošću znate koje alate morate imati instalirane da biste mogli kompajlirati programe u gnu / linux ... to možete znati samo savjetovanjem sa dokumentaciju programa koji želite izvesti. Programi koje spominjete koriste se za DEBIJANIZIRANJE i pakiranje u taj format programa koji može ili ne mora biti kompiliran.

    U članku postoje i druga pitanja koja se pokazuju pomalo dvosmislena u načinu postavljanja. Bilo bi teško obratiti im se svima.

    Predlažem da autor članka pregleda što je više moguće i pozivam na bolju kontrolu kvaliteta publikacija.

    1.    Pepenrike rekao je

      Čovječe, nije ni to.

      Članak nije za časopis Science, to je samo uvodni članak i vjerujem da je u terminima u kojima je napisan dovoljno detaljan da korisnik početnik razumije ključne pojmove.

      Ako postanemo akademski, tri četvrtine onoga što se objavljuje na internetu ne bi vrijedilo apsolutno ništa.

      Ne budimo toliko puristički ... nemoguće je 100% složiti sa člankom, ali ne možemo kontinuirano procjenjivati ​​"tehničku" kvalitetu, kao da ćemo ocjenjivati ​​doktorat.

      Moja puna podrška autoru ovog članka

  29.   neimenovan rekao je

    zanimljiv članak

    Ljubiteljima slobode je uvijek dobro da unar umjesto rar razapakuju rare. ( https://packages.debian.org/jessie/unar )

  30.   Jumi rekao je

    Pogodila sam grešku s ovim izdanjem ... Počela sam pretraživati ​​u googleu, ali ne mogu pronaći tutorial za kompajliranje firefoxa pod ubunto 14.04 amd64 bita ... u suprotnom, večeras dobivam kernel sa sljedećim tutorijalom: http://www.redeszone.net/2014/11/28/como-instalar-el-ultimo-kernel-de-linux-en-ubuntu-14-04-lts/

  31.   Carlos Ferra rekao je

    dobar članak, puno učim. ali ovo bih koristio samo za neki određeni program koji troši puno resursa, poput video uređivača, na primjer. Pozdrav.

  32.   babel rekao je

    Između ovog članka i članka iz Gentoo-a koji su objavili prije nekoliko dana, iskušavaju me da instaliram Gentoo na svoj PC. Prije mnogo godina koristio sam Sabayon, koji je olakšao čitav postupak instalacije, ali je zadržao bazu koja se treba kompajlirati iz izvora. Iskreno, ne sjećam se da sam primijetio bilo kakvu razliku u performansama svog laptopa (u to vrijeme imao sam krug) sa Sabayonom ili Ubuntuom, tako da ne znam da li bih se bacio svim poslovima brisanja svog Arch-a koji jako dobro funkcionira da bih ga instalirao. Nisam siguran da se nekoliko milisekundi po programu isplati.

    1.    anonimo rekao je

      Od 4 računala s gentooom koja sam instalirao i ažurirao, dodaje se bilježnica koja je imala archlinux ... Systemd me umorio, već sam ga morao koristiti sa startxom jer su u posljednjem ažuriranju obje jezgre pucale na 85% upotrebe, ne radeći ništa, istraživao sam i čini se da se nešto promijenilo u systemd-u da bi vitki poludio i pojeo mikroprocesor.
      Dosta, bilo je dovoljno s lukom ... predugo se držao, više od dvije godine, sad instaliram gentoo, idem na update za stage3, za večeras ide otvoreni boks s pomfritom.

  33.   Lav rekao je

    Dobar članak, natjera me da kompajliram Qupzillu, ali s sempronom će trebati dana, pa, ne znam toliko dugo, ali i dalje ostavlja loš dojam.

  34.   Manuel Aponte rekao je

    Još jedan nedostatak kompilacije je da je, kada postoji nadogradnja, potrebno ponovo sastaviti i instalirati nadogradnju, što je problem s obzirom na to da neki programi imaju kratke razvojne cikluse i za njih se ažuriranja izdaju često, 2 do 3 mjeseca, sa svim to slučajnom korisniku dosadi, a stalni korisnik troši puno vremena kako bi održavao svoj sustav ažurnim.

  35.   Manuel Aponte rekao je

    Želio bih znati koje se aplikacije preporučuju za kompajliranje. prema svojoj korisnosti, učestalosti ažuriranja i poboljšanju performansi.

  36.   Aleix Pol rekao je

    To je apsurdno, ako se trebate sami sastaviti, koristite pogrešnu distribuciju. Jedini razlog za kompajliranje je dodavanje opcija za otklanjanje grešaka koje će vas usporiti u zamjenu za bolje ispravljanje grešaka drugih.
    Vaš sistem nije spor jer mu treba -O3, spor je jer postoji previše programa koji čita na disk ili slika previše na ekranu.

    Moja preporuka: umjesto mikro-optimizacije našeg sistema, radimo kao zajednica na poboljšanju softvera koji svi imamo.

  37.   Javier Fernandez rekao je

    Niste objasnili kako optimizirati kompilaciju, na primjer u Gentoo USE opcije se koriste za optimizaciju generiranog koda, također morate navesti procesor itd. Kako se to radi u UBUNTU / Debian ili Arch?, Zanimljiv članak.

  38.   Jose Manuel rekao je

    Dobro!

    U nedostatku čitanja komentara ispod, imam početnika u sumnji na Linux:

    Koristim Fedoru 20, već imam instalirano poprilično stvari, na primjer, pregledač Firefox, da bih ga kompajlirao za svoju mašinu, mogu li to učiniti bez daljnjeg odlaganja?, Odnosno pod kodom i kompajlirati, ili moram prvo moram izbrisati program koji sam već preuzeo da kompajliram novi ...

    Isto je i sa Linux kernelom i slično….

    Možda tražim nešto apsurdno, ali već kažem da sam prilično novajlija u ozbiljnim Linux stvarima, hahaha

    Hvala!

    1.    Koprotk rekao je

      Mislim da kernel nije potreban, ali morate stvoriti unos za svako jezgro u GRUB-u, s firefoxom ne znam da li se preporučuje imati 2 firefox, osobno više volim imati 1 samo kernel i 1 samo firefox

  39.   st-avapxia rekao je

    Jedino što sam u svom životu sastavio je verzija u razvoju Musiquea, jako mi se sviđa ta aplikacija, vrijedila je toliko vremena koliko je trebalo za taj proces. Za krajnjeg korisnika poput mene, kad sam završio, osjećao sam se ispunjenim.

    Pozdrav, odličan blog.

  40.   ecoslacker rekao je

    Pozdrav, koristim Slackware i sastavljanje aplikacija je najnormalnija stvar na svijetu.
    Sustav se instalira iz ISO-a koji je već prekompajliran, a prethodno kompajliranih aplikacija koje možete koristiti iz službenog spremišta malo je, iako ako želite možete preuzeti izvorni kod sistema (i originalne skripte s kojima se kompajlira cijeli distro) i sami ga sastavite, kako ja pretpostavljam da Gentoo radi.
    Međutim, projekt SlackBuilds pruža skripte (slično službenom distro-u) za mnoge nezavisne aplikacije, u koje preuzimate izvorni kod onoga što želite instalirati i pretvarate ga u tgz ili txz paket koji se kasnije instalira s njim. službeni upravitelj paketa distro-a. Stoga je prednost u tome što izbjegavate korištenje naredbi za konfiguriranje, izradu, izvršavanje instalacije, a paket možete ažurirati, ponovo instalirati ili ukloniti kao i bilo koji drugi i vrlo jednostavno.
    Loša strana je što se zavisnosti ne rješavaju automatski u Slackware-u kao u drugim distro-ovima, tako da prvo morate sastaviti potrebne zavisnosti, a aplikaciju koju želite instalirati posljednju. Programi koje koristim kompajlirani su između ostalog LibreOffice, Texmaker, Spyder, Qt5, QtCreator, VLC, Wine, GRASS, QGis. Ovisno o aplikaciji i njenim zahtjevima, sastavljanje i instalacija mogu trajati od 5 minuta do nekoliko sati. Ali ako želite, možete pronaći i koristiti unaprijed sastavljeni paket kako biste uštedjeli vrijeme.
    Nisam imao vremena provjeriti postoji li velika razlika između prevedenih i prekompajliranih paketa, ali moj sistem je vrlo stabilan. Ali mislim da barem u mom laptopu nema velike razlike jer nije toliko moćan, ima i3 procesor i 4 GB RAM-a.
    Pozdrav i puno sreće u sastavljanju.

  41.   Koprotk rekao je

    Trenutno koristim Funtoo, da budem iskren, ne vidim nikakvu razliku u performansama između sastavljanja programa ili instaliranja prethodno kompiliranog, to radim isključivo u obrazovne svrhe, ali ako postoje razlike između sastavljanja jezgre i nečinjenja, da. Kada sam koristio debian i htio kompajlirati nešto, koristio sam sljedeću sekvencu:

    ./configure
    Make -j3 (broj jezgara + 1)
    stranac

    Koristio sam alíen jer on stvara binarni program kompajliranog programa i tako ga možete instalirati na svoj sistem kao bilo koji binarni program, pa ako želite deinstalirati, možete jednostavno koristiti synaptic ili drugi upravitelj paketa, to je prednost stvaranja paket i instaliranje paketa kao takvog, umjesto da radite "make install"

    1.    Yukiteru rekao je

      Vidim poboljšanje, barem kod velikih i teških paketa, na primjer za učitavanje Libreoffice-a u Funtoo-u treba puno manje vremena nego u Debianu, isto mi se dogodilo sa VLC-om ili sa mpv i MKV FullHD i multi-audio datotekama, opterećenje je mnogo brže.

      Još jedan koji je također prošao kroz promjenu je Firefox, u Debianu posjedovanje 10 ili 15 kartica sa mojim računalom postaje mučenje, ali s Funtoo-om uspio sam imati do 30 otvorenih i nastavlja kao da ništa, a potrošnja ram-a je mnogo manja i manja Težići zamrzavanju JS datoteka, mislim da to više ovisi o kontekstu kako se izvršavaju određeni zadaci i programi.

  42.   Marco Sarmiento rekao je

    Problem je u tome što kad ga prekompajliramo preuzmemo, pretvaramo bilo koji linux distro u sirovu kopiju prozora

  43.   Fermin rekao je

    Više nego u spektakularnom povećanju performansi, vidim prednost u mogućnosti kompajliranja paketa sa komponentama koje neko želi: na primjer, ako nemate pisač, možete naznačiti da paketi s podrškom za CUPS nisu sastavljeni -paketi koje koriste CUPS, očito, ako kompajlirate Hunspell sa ili bez CUPS-a, to neće biti važno - samo - barem u Gentoo-u - naznačeno u datoteci make.conf, gdje su sve mogućnosti za izgradnju paketa centralizirane - - šalice "; ako koristite KDE5 ili Plasma 5, kako ga sada zovu, možete navesti oznake "-kde", "-qt4", koje su bile valjane oznake za KDE 4, ali nepotrebne u KDE 5 i aplikacije prenesene na novu radnu površinu, "-gnome", "-Gtk", i tako dalje sa bilo kojom komponentom za koju znate da vam nije potrebna. Ako je iz nekog razloga potreban određeni program, recimo GTK, tada možete u datoteci koja se zove package.use naznačiti da koristi GTK, na primjer za Pidgin s istom oznakom, ali bez znaka minus, to jest, " gtk »:« Net-im / pidgin gtk ».
    Na taj način sistem postiže nekoliko stotina megabajta lakših i manjih i efikasnijih binarnih datoteka, bez nepotrebnog koda. Prošao sam put od Ubuntu-a do Gentoo-a kroz Opensuse, Kubuntu, Debian, Arch, Chakra ili KaOS, a Gentoo je najbrži sistem koji sam imao, i dalje imam isti Core 2 Duo koji sam imao prije 7 godina. Naravno, kompilacije ostavljam za noć, jer sastavljanje QT5, na primjer, traje nekoliko sati. Ako postavite parametar "finoće" za Portage u make.conf, možete instalirati pakete ili ažurirati dok nastavljate raditi sa mašinom i jedva da ćete primijetiti veliko usporavanje, iako se očito vrijeme kompilacije povećava; ali hajde, s stavljanjem na instalaciju ili ažuriranje kad odem na večeru, i ako je potrebno ostaviće ga da radi preko noći, moj stari računar radi bolje od I3 moje djevojke s Kubuntuom.

    Sljedeći sve važniji aspekt je da je prilikom kompajliranja iz izvornih datoteka sigurnost da je paket koji instaliramo originalni, da njime nisu manipulirale treće strane, gotovo potpuna. Mislim da Debian implementira sustav provjere gradnje koji će jamčiti malo više da predkompilacija koju instaliramo zapravo dolazi iz izvornog izvora, ali nikada neće biti tolike sigurnosti kada je taj paket kompajliran na našoj mašini s našim postavljanjem.
    Po mom mišljenju, s modernim procesorom, a ne sa čegrtaljkom poput moje, hehe, i, ako želimo ubrzati proces, sa 8 GB RAM-a da bismo mogli montirati / var / tmp - privremenu mapu koju Portage koristi za kompilaciju - u RAM, koji će uvijek biti brži od tvrdog diska ili SSD-a, danas ne vidim puno smisla koristiti unaprijed prevedene pakete. Ako mom Firefox računaru treba oko 40 minuta da kompajlira, koliko vremena treba I5 ili I7 koji su trenutno na tržištu, 5 minuta, čak i manje? Govorim o izvornom firefoxu, a ne o firefox-bin-u, koji je prekompajlirani binarni paket koji se može instalirati na Gentoo ako imate vrlo spor stroj - postoji nekoliko velikih paketa koji se već nude prekompajlirani iz tog razloga, nije obavezno kompajlirati sve -. Ne mogu govoriti jer mi djevojka ne dozvoljava da petljam po njenom računaru, hehe, a moj ide tako dobro da ne osjećam potrebu da ga obnavljam, ali ako sam u pravu, mislim da vrijedi izgubiti nekoliko minuta da kompiliram da bih imao sistem po mjeri. Prilagođeniji i prilagođeniji našoj mašini, mislim da se ništa ne može postići bez ulaska u te Linux metode od nule, Linux od nule, koji mislim da je već rezerviran za informatičare ili vrlo napredne poznavaoce Linuxa.

    Pozdrav.

  44.   Pato rekao je

    Veoma dobro!
    jedna stvar ne postoji «Amd Atom x2»
    ni existira je zaštitni znak kompanije Intel
    pozdravi