De ce este mai bine să compilați decât să instalați din depozite

În acest mic ghid, vă voi explica (și vă voi învăța) de ce este mai bine să compilați un program (să zicem Firefox, Vlc etc.) din codul sursă al acestuia, decât să îl descărcați (din The Software Center, Yumex, Pacman etc.) și instalare.

Mai întâi mergem cu teoria:

Ce este „compila”?

Compilarea transformă codul sursă (cod scris într-un anumit limbaj de programare, să spunem C, C ++ etc.) într-un program executabil pentru funcționarea acestuia prin utilizarea procesorului pentru a converti limbajul utilizat pentru a genera codul în binar și asamblator . Se mai numește adesea ambalare.

De ce este mai bine să „compilați”?

Mai întâi trebuie să știți următoarele pentru a înțelege de ce. Spuse într-un mod „grosolan” (simplu, nu foarte profesionist etc.), fiecare rasă (Pentium, Core, Atom etc.) și speciile sale (Intel, AMD, ARM etc.) de procesor au instrucțiuni (software scris în asamblare care procesează codul) modelului lor (Core i7, Core i5, Atom x2, Phantom x8, Arm etc.) și au, de asemenea, instrucțiuni generale pe care le au toate de genul lor.

Când descărcați din depozite prin intermediul Centrului software / apt-get / Yumex / Yum / Pacman / etc, un program care se instalează spune automat că precompiled pentru funcționare pe toate procesoarele posibile (Intel și Amd). Deoarece este un program precompilat, acele instrucțiuni tipice acelui model de procesor specific se pierd (gândiți-vă că, dacă un program precum Firefox sau Chrome, care are mai mult de 7 sau 8 milioane de linii de cod, ar trebui să pună toate instrucțiunile specifice pentru fiecare procesor de pe piață, cantitatea de cod ar fi atât de mare încât programul respectiv nu ar mai fi eficient) lăsând nimic mai mult decât cele generale ale brandului său de creatori (Intel, Amd, Arm).

Când descărcați, dezarhivați și compilați singur codul sursă al unui program, acesta se compilează cu instrucțiunile specifice din TU procesor, (ceea ce nu înseamnă că nu va funcționa pe o mașină cu una diferită, ci doar că va fi optimizată în mod specific și pur pentru procesorul dvs.), dezlănțuind astfel și eliberând toată puterea pe care procesorul dvs. este capabilă să o mulțumească instrucțiunilor sale specifice.

În detalii mai tehnice, aceste instrucțiuni specifice sunt strâns legate de ceea ce este cunoscut sub numele de chipset-ul plăcii dvs. de bază, care este durerea de cap extraordinară pentru cei dintre noi care avem Intel atunci când dorim să actualizăm procesorul și placa de bază.

Ați fi surprins de puterea pe care o aveți amd atom x2 sau tu Intel Core Inside, Core Duo 2, i3, etc de pe vechiul computer. Acum înțelegeți de ce se vorbește mult în lumea Linux despre compilarea faimosului Kernel (inima fiecărui sistem de operare)? Imaginați-vă dacă compilați un întreg sistem (mediu grafic (Gnome, Kde etc.), Kernel, programe utilizate în mod obișnuit (Firefox, Vlc, Chrome, Wine etc.) în special pentru computerul dvs.) toată viteza și nivelul de optimizare pe care le-ați avea.

Acest principiu de compilare pentru a obține un cod optimizat special pentru mașina dvs. este cel folosit de distribuții precum Gentoo și derivate (despre care nu am de gând să vorbesc acum, folosesc Fedora minimal cu compilarea Gnome 3, kernel și alte programe) în care sistemul , actualizările și programele dvs. sunt întotdeauna compilate.

Contra compilației:

Am explicat deja toate avantajele, dar, ca tot ce există în univers, are unul împotriva.

În cazul compilației sunt;

  • Timpul necesar pentru asta (Firefox cu un i7 4790K (fără overclock deoarece sunt foarte prost cu tensiunile) durează 3 minute, Gnome Shell (bara nimic altceva) cu Gnome-Control-Center mi-a luat aproximativ 2 minute, ambele fiind compilate în același timp în Fedora. Dar pe o mașină cu un procesor mai puțin puternic de data aceasta poate fi disproporționat de lungă).
  • Procesorul folosește 100% din puterea sa cu toate nucleele sale la maxim, astfel consumul și căldura cresc (ține cont de asta dacă ai overclocking sau dacă este mai ales un notebook), deci este convenabil să pregătești un mate sau o cafea pentru ocazie.
  • Poate că vă lipsește o bibliotecă (instrument) care utilizează un program, astfel încât să nu greșească în compilație. În general, toate distribuțiile au pachete sau seturi de ele pentru a evita acest lucru (sunt împachetate cu diverse biblioteci și alte lucruri care permit nucleului să comunice așa cum ar trebui cu procesorul în timpul procesului).

Cum pot compila?

Pentru Debian (Ubuntu, Mint, Elementary, etc, toate acestea sunt derivate din acest lucru, așa că urmați acest lucru

Aici vorbesc despre compilarea unui program pentru utilizare normală, nu a unui nucleu.

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

Am pus debian-policy, dar dacă distribuția dvs. nu este Debian și vă oferă o eroare că nu există un astfel de pachet, pur și simplu ignorați-l. Trebuie să clarific că nu am folosit aceste sisteme de mult timp, așa că dacă un pachet nu mai este în depozite, nu puneți probleme.

Pentru Fedora:

sudo yum -y instalează kernel-headers
dezvoltarea nucleului
sudo yum groupinstall "Instrumente de dezvoltare"
sudo yum groupinstall "Biblioteci de dezvoltare"

Aici trebuie să-mi cer scuze pentru cei care folosesc Arch (nu cunosc distro bine) și OpenSuse, deoarece nu cunosc aceste distribuții sau pachetele respective pentru a efectua o compilare corectă (și nu am coroborat ceea ce este în rețea, deci că pentru acei doi nu știu dacă funcționează).

Acum, că aveți toate cerințele necesare, trebuie doar să descărcați codul sursă al programului pe care doriți să-l compilați, în funcție de extensia, îl dezarhivați folosind terminalul (nu vă faceți griji, vă voi lăsa comenzile) și când mergeți în dosar (întotdeauna cu terminalul) faceți același lucru ca urmare a:

Dacă aveți posibilitatea să vă configurați pentru a alege componentele și altele:

./configure

Apoi tastați:

make

Și, în cele din urmă, pentru a instala programul pe Linux:

make install

Toate acestea întotdeauna cu root (su în Fedora, sudo su în Ubuntu și derivatele sale (Mint, Elementary Os etc.)

Comandă dezarhivarea utilizând terminalul (fișierul este dezarhivat într-un folder în care se află fișierul):

.Tar fișiere (tar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pack | tar cvf file.tar / file / * Despachetați | tar xvf file.tar Vizualizați conținutul | tar tvf file.tar
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.gz - .tar.z - .tgz (tar cu gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Pack and zip | tar czvf archive.tar.gz / archive / Unpack and unzip | tar xzvf file.tar.gz Vizualizați conținutul (nu este extras) | tar tzvf file.tar.gz
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .gz (gzip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Comprimare | fișier gzip -q (Fișierul îl comprimă și îl redenumește „fișier.gz”) Unzip | gzip -d file.gz (Fișierul îl dezarhivează și îl lasă ca „fișier” Notă: gzip comprimă doar fișiere, nu directoare
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .bz2 (bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Comprimare | fișier bzip2 | fișier bunzip2 (Fișierul îl comprimă și îl redenumește „fișier.bz2”) Unzip | bzip2 -d fișier.bz2 | bunzip2 file.bz2 (Fișierul îl dezarhivează și îl lasă ca „fișier”) Notă: bzip2 comprimă doar fișiere, nu directoare
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .tar.bz2 (gudron cu bzip2) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Comprimare | fișierele tar -c | bzip2> file.tar.bz2 Unzip | bzip2 -dc file.tar.bz2 | tar -xv | tar jvxf file.tar.bz2 (versiuni recente ale tar) Vizualizați conținutul | bzip2 -dc file.tar.bz2 | tar -tv
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .zip (zip) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Comprimare | zip file.zip / mayo / archives Unzip | dezarhivați fișierul .zip Vizualizați conținutul | dezarhivați -v fișierul.zip
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .rar (rar) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Comprimare | rar -a file.rar / may / archives Unzip | rar -x fișier.rar Vizualizați conținutul | rar -v fișier.rar | rar -l fișier.rar

Și asta e tot. Salutări din Buenos Aires, Argentina. Sarbatori fericite si Anul Nou! :).


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Gonzalo el a spus

    Problema cu compilarea este că nu funcționează întotdeauna prima dată și este mai obositoare

    1.    Cristian el a spus

      Problema cu compilarea este că, cu excepția cazului în care aveți un computer vechi și limitat, îmbunătățirile nu vor fi vizibile ... ei bine, poate, pe un computer cu utilizare intensivă este o opțiune, dar pentru majoritatea utilizatorilor este doar un proces obositor.

      1.    Daniel el a spus

        Cred că aceasta este esența problemei. Este oare atât de importantă îmbunătățirea performanței care va fi remarcabilă la compilarea pachetelor, încât ar necesita timpul și dificultatea acestei sarcini în fundal?

      2.    joaco el a spus

        Același lucru dacă aveți o compilare i7 este convenabil, deoarece este mai rapid și calculez că funcționează ceva mai bun. Acum, cu un computer cu intel atom, nu este convenabil, cu excepția cazului în care într-adevăr aveți nevoie de puterea suplimentară pe care o oferă compilarea, dar poate dura câteva ore pentru a compila un program cu un procesor mai puțin puternic.

    2.    Avrah el a spus

      Sunt total de acord, mi s-a întâmplat să compilez și să aflu după un timp că îți lipsește o bibliotecă, o urmărești și trebuie să înfrunți procesul din nou ... Este rar că totul funcționează la prima încercare ... xD

  2.   FerGe el a spus

    ¡Muy interesante!

    Dacă compilați un program, cum funcționează actualizările ulterior? Sunt automate sau trebuie să fim conștienți dacă a apărut o nouă versiune?

    1.    Anthony Fields el a spus

      Trebuie să-l actualizați manual, adică să compilați cea mai recentă versiune, care este un alt, să spunem „dezavantaj” pentru care face și ceva plictisitor

    2.    jlbaena el a spus

      Deoarece actualizările nu există, de fapt, distribuțiile Linux și diferitele moduri de ambalare a software-ului și managerii de pachete corespunzători elimină inconvenientul recompilării pentru fiecare nouă actualizare (și rezolvarea dependențelor).

      Salutări.

    3.    joaco el a spus

      Dacă îl compilați descărcând codul sursă de pe orice pagină, atunci trebuie să o faceți manual și să aflați cum să îl instalați, deoarece nu toate sunt instalate la fel.
      Acum, dacă aveți Gentoo sau vreo distribuție cu porturi, atunci o faceți din depozite aproape automat.

    4.    Fermin el a spus

      În Gentoo, managerul dvs. de pachete, Portage, are grijă de actualizări și dependențe; Nu știu pe alte distribuții. Desigur, fiecare actualizare implică recompilarea, evident.

  3.   tanrax el a spus

    A fost o vreme când am compilat tot ce am putut. Apoi m-am săturat, mai ales din cauza timpului pe care l-am avut de dedicat funcționării mașinii (45 min pentru miez, 10 min pentru crom ...) și din timpul pe care l-am petrecut rezolvând problemele apărute din mers. În plus, personal nu am găsit o creștere a performanței, aveam senzația că totul este la fel. Din aceste motive acum folosesc totul precompilat, totul este instantaneu și fără conflicte. Deși în acel moment am învățat multe, am rămas cu dorința de a folosi gentoo 🙂

  4.   Emmanuel el a spus

    Chiar și este ceva ce am văzut puțin, poate fi compilat din sisteme precum apt. Adăugați un pavilion de construcție la apt-source și voila. Desigur, înainte de aceasta, instalarea pachetelor necesare pentru realizarea compilațiilor, altfel nu funcționează ... deși este o formă mai directă de compilare și care implică mai puțini pași, deoarece, doar prima dată când ocupă instalarea pachetelor și următoarele, a îndeplinit dependențele și pachetul ca atare.

    Salutări.

    1.    joaco el a spus

      Are funcționalitate apt-build, deși cred că nu compilează dependențele, ci instalează binare precompilate.

  5.   xikufrancesc el a spus

    Din primul moment în care am văzut titlul, nu m-am putut abține să nu mă gândesc la același lucru și, după ce am citit întregul articol excelent, am în minte ideea de a merge de o mie de ori, Gentoo ... Gentoo, unde ești?
    compilarea este minunată, posibilitatea de a te bucura de anumite caracteristici și de a le folosi este neprețuită, dar timpul și „nevoile actuale” sunt inexcusabile, deoarece nu se aplică.
    Poate că avem nevoie de ceva la mijloc, în care nici bibliotecile și nici detaliile modificării versiunii nu vor pierde atât de mult timp. Vom vedea ce se va întâmpla atunci, sau dacă ne aplicăm cu adevărat la compilarea aptitudinii în sine, a montării și a zypper-ului pe care le-am instalat deja.

  6.   anonim el a spus

    3 minute firefox!… .Vrei să spui 30?

    Acest lucru a durat mult pe computerul meu cu un fx8350 4.5G, eu folosesc gentoo.
    $ genlop -t firefox | tail -n3
    Sâmbătă 6 decembrie 20:00:00 2014 >>> www-client / firefox-34.0.5-r1
    timpul de îmbinare: 16 minute și 35 de secunde

    Aceste instrucțiuni specifice fiecărui procesor se numesc mnemonice și sunt implementate fizic în cadrul microprocesorului, acestea constituind limbajul mașinii, prin urmare se compilează astfel încât un program să poată rula pe mai multe tipuri de microprocesoare, dacă sau dacă acestea trebuie să fie limitate la cea mai mică cantitate de mnemonice obișnuite suportate de toți acei microprocesori ... risipind capacitatea reală a celor mai puternice și mai puternice microprocesoare.
    Așa o fac companiile și distribuțiile binare gnu / linux.

    1.    Shyancore el a spus

      Pentru mine, cu un Intel i7 4790K cu 18 GB memorie RAM, mi-a luat ceea ce am spus înainte

      1.    anonim el a spus

        Înțeleg că micro-ul pe care îl aveți este superior, dar diferența este teribilă, adevărul trebuie să fie o savană la viteza respectivă. Poate că este ceva legat de dependențe sau USE, care sunt aceleași cu opțiunile de configurare atunci când compilați manual.

      2.    Jhonny el a spus

        Un mic detaliu pe care l-ați evitat să spuneți 18 GB de RAM în afară de i7, nu toată lumea are mașina respectivă, dar ați putea face un benchmarking, astfel încât diferența este vizibilă, deoarece teoria este frumoasă, dar să vedem dacă compensează.

      3.    Cristian el a spus

        Un alt detaliu extraordinar, procesorul este Intel, prin urmare are cel mai bun virgulă independentă de model, o caracteristică foarte relevantă pentru realizarea acestui tip de proces

    2.    Ezechiel el a spus

      Este adevărat, compilarea este plictisitoare. Dar înveți multe negând Makefile, biblioteci etc. Este ceva ce este bine de făcut chiar și de câteva ori. Folosesc totul precompilat din același motiv citat de Tanrax.

      Salutari din Argentina!

  7.   Eric Carvajal el a spus

    Problema pe care o am în general atunci când încerc să compilez programe de versiune complet noi se datorează întotdeauna dependențelor, uneori este necesar să le compilați pe toate (pentru a ajunge la cele mai recente versiuni) și apoi să vă gândiți la posibilitatea de a compila ceea ce doriți.

    Problemele PATH și FLAGS sunt lucrurile care încă mă împiedică să vreau să compilez totul (deși de obicei o fac așa cum pot). Unul dintre instrumentele pe care le consult de obicei pentru a putea compila dependențele este următorul web - http://www.linuxfromscratch.org/ -

    #LinuxFromScratch este un proiect care oferă instrucțiuni „pas cu pas” pentru a compila codul sursă pe care trebuie să îl utilizați pe sistem .. (98% din ceea ce am avut nevoie pentru a compila l-am realizat ghidându-mă de aici și treptat învăţare).

    Ca un plus, cred că compilarea unui sistem de la 0 ar fi interesantă mai ales pentru mediile de dezvoltare sau servere, printre altele despre care spunem că „nu sunt de obicei la fel de schimbabile” ca un computer personal în care instalăm și schimbăm în mod constant totul (este punctul meu de vedere) pe lângă faptul că performanța minimă obținută în acest tip de aplicații de utilizare este foarte importantă.

    Acestea sunt puncte despre care se spune foarte puțin în zilele noastre și sunt gestionate doar de „cărturari”, dar este interesant să oferim aceste tipuri de lucruri tutoriale de care au nevoie, astfel încât în ​​fiecare zi să găsim mai mulți oameni care să contribuie la ajutorul diferitelor comunități în care participă și nu numai Gnu / Linux rămâne la timp din cauza performanței slabe a colaboratorilor, că, deși până acum „a funcționat așa”, nu este foarte sănătos să ai doar utilizatori finali.

  8.   Vulturul Rabuda el a spus

    Permiteți-mi o mică adăugire. Pentru a obține avantajele pe care le prezentați aici, trebuie să configurați corect binecunoscutul make.conf. Familia procesorului și steagurile de compilare sunt indicate acolo. În mod similar, acolo puteți specifica numărul de nuclee de utilizat în timpul compilării. Când utilizați toate nucleele microfonului, timpul de compilare este redus drastic.

    Un saludo

  9.   Sebastian el a spus

    Articol foarte bun. Mi-ar fi plăcut și un exemplu sau aș dori direct, o postare despre cum să compilați în archlinux sau cum să utilizați AUR. La mulți ani de la Mendoza.

  10.   TheGuillox el a spus

    Cu mult timp în urmă ... am compilat întotdeauna nucleul, dar este foarte obositor să trebuiască să aștepți 40 de minute: / oricum ... Nu am compilat nimic în afară de driverele video de mult timp (doar pentru configurații speciale).

  11.   Alexander el a spus

    Articolul este foarte interesant, dar nu domnule, ambalarea și compilarea nu sunt la fel;) ..

  12.   c4exploziv el a spus

    Post foarte bun. Sunt de acord cu compilarea anumitor programe, dar uneori este oarecum obositor, așa că este nevoie de mașină pentru a face procesul. Dar, în afară de asta, se învață multe, mai ales atunci când sunt necesare biblioteci sau pachete.
    Cred că pentru Archlinux, pentru a compila ai nevoie de următorul pachet: base-devel
    pacman -S baza-dezvoltare

  13.   uciderea șobolanilor el a spus

    Informațiile sunt foarte bune, dar adevărul este că nu este necesar să compilați, dacă sunteți un utilizator standard și doriți doar să funcționeze așa, nici măcar nu atingeți asta. Este plictisitor să compilezi, mereu, spun mereu că îți lipsește o bibliotecă, te confrunți cu una sau alta problemă, spune-mi să compilez serverul Minecraft, astfel încât totul să fie cât mai bun posibil și îți iau timpul ... în afară că de fiecare dată când apare o actualizare sau un patch sau orice altceva, începeți să compilați din nou xd

    1.    Kik1n el a spus

      Exact, compilarea este pentru programe foarte specifice de care aveți nevoie pentru o utilizare optimă, deoarece compilarea tuturor, și, după cum spuneți, există întotdeauna actualizări, în mare parte distribuții de lansare, este enervant. Aș recomanda doar nucleele sale.

  14.   FedoraUser el a spus

    Astăzi, aproape toți procesoarele pe care oamenii le folosesc acceptă aceleași instrucțiuni, prin urmare compilarea este favorabilă doar atunci când vine vorba de kernel și într-un sistem precum un server, și, evident, când nu există pachete precompilate, orice altceva este o risipă timp.

  15.   John Mere el a spus

    Bună contribuție, voi încerca să văd cum merge, până acum de cele mai multe ori (aproape întotdeauna) instalez din depozite ...
    Observație mică: opțiunile de comandă rar sunt fără script și bunzip2 decomprimă doar.

  16.   santiago el a spus

    Cel mai mult pe care l-am compilat a fost un kernel pentru debian wheezy și mi-a luat aproximativ 2 ore (am un procesor dual-core amd e450 1.6 ghz) și tocmai de aceea nu instalez gentoo, timpul pentru a compila și descărca întregul sistem ar dura aproximativ 18 ore , și că, dacă nu am nicio problemă, este adevărat că este mai bine să compilez, dar de cele mai multe ori timpul necesar este prea mare și cred că nu merită. Aveți o creștere a vitezei, dar nu este mult și cred că nu justifică tot timpul investit. Deși dacă într-o zi am un pc cu un procesor la fel de bun ca al tău, voi încerca să instalez gentoo 😛

  17.   vampir el a spus

    Oameni:

    Fără intenții de flacără sau orice altceva, slackerii o văd natural ca să compileze, să genereze binarul, să îl instaleze cu managerul de pachete relevant (care rezolvă în mod evident dependențele, slapt-get, swaret, slackyd și / sau altele), cu totul optimizat pentru echipă și parcă nimic, ceea ce nu este nimic despre care să scriem acasă sau fizica cuantică.

    Urmărirea unui DVD fără a se agita pe un P3 750MHz cu 192MB RAM nu este nici imposibilă, nici dificil de realizat prin Slackware. Atest și este mai rapid decât compilarea unui Gentoo. Dar nu este același lucru, folosesc și Gentoo.

    Diferența dintre hacker și consumator este că consumatorul spune „Aș vrea să funcționeze așa” și hackerul „Am o șurubelniță și câteva minute” - Rael Dornfest

  18.   pepenrike el a spus

    Există într-adevăr o îmbunătățire semnificativă a performanței?
    Cu o ultimă generație i7 și 18 Gb de ram, cum observați diferența dintre pachetele compilate și binare?

    Întotdeauna am urât despre adecvarea pachetelor de auto-compilare, dar cred că în mediile desktop actuale este foarte complex să-l susțin, mai ales datorită complexității dependențelor, actualizărilor continue și dependenței enorme de sursele non-libere. , ca și în cazul driverelor proprietare, care influențează fără îndoială performanța mult mai mult decât orice aspect care poate fi compilat ...

    În ceea ce priveşte

    1.    Shyancore el a spus

      Având în vedere că Gnome 3 îl compilează doar (voi spune numele crud, deoarece numele pachetelor nu-mi amintesc): shell-ul (bara), gnome-control-center (complet, cu dependențele sale etc.), applet-ul pentru timp și aproximativ 2 sau 3 dependențe pentru ca shell-ul să funcționeze. Evident, shell-ul a necesitat mai multe dependențe pentru ca toate funcțiile sale să funcționeze, dar m-a determinat să complez GDM printre altele, am remediat acest lucru modificându-l cu GConf odată ce shell-ul a fost compilat.
      Acum, când mă conectez (prin terminal), mediul necesită mult mai puțin timp pentru a se încărca decât atunci când l-am instalat precompilat. Aruncând un timp în aer, într-un mod precompilat, cred că a durat aproximativ 3 sau 4 secunde pentru a încărca coaja (cu aproximativ 5 în care este afișat tapetul, nu am înțeles niciodată de ce a durat atât de mult, mi se pare că este din cauza driverului cu GT 630) și compilat imediat ce am introdus parola X org începe și mediul este încărcat (cu preîncărcare și prelink le-am făcut mult mai rapide, mi se pare că este pentru că au fost transmise la cache; https://www.google.com.ar/search?q=preload+y+prelink+fedora&ie=utf-8&oe=utf-8&gws_rd=cr&ei=iXaqVPykO4qYNpbTgdAP )

    2.    mario el a spus

      Faptul că i7 are instrucțiuni ss4 și ss3, care sunt ignorate de versiunile generice de la diferite distribuții (debian compilează pentru 486, ubuntu pentru 686) vă poate oferi o idee despre momentul în care hardware-ul este irosit încercând să se întindă pe un procesor vechi de 20 de ani - poate mulțumesc pentru sprijinirea vechiului meu pentium mmx-. Dacă aveți nevoie de „drivere proprietare” așa cum ați menționat, nucleul oferă posibilitatea de a încărca firmware specifice la momentul compilării. Gata cu problemele ciudate cu xorg.

  19.   Fabian Alexis el a spus

    Mulțumim pentru informații, este întotdeauna bine să înveți (sau să reînveți) (:

  20.   Xavier el a spus

    Debian încântat către Gentoo 🙂
    http://crysol.org/es/node/699

  21.   Yuan șase el a spus

    Un alt dezavantaj este că compilarea de către terminal este pentru utilizatorii care știu sau au deja unele cunoștințe despre Linux. Există un instrument grafic care nu gestionează compilarea, instalarea și actualizarea programelor, ci grafic?

    1.    mario el a spus

      Calculează Linux face asta, este un gentoo cu instrumente grafice gata de compilare. În Phoronix, de obicei, îl recomandă.

  22.   José el a spus

    Sunt un utilizator linux, uneori când vreau să instalez un program din depozit, sunt instalate versiunile vechi ale programului, pur și simplu pentru că cele noi nu sunt compilate pentru distro-ul în cauză, cred că este esențial să știi cum să compilezi, cu atât mai mult atunci când sunt folosite distrosuri rare.

  23.   Joan el a spus

    Tot ce scrie în postare este în regulă și nu mă îndoiesc că este adevărat, dar diferența de performanță dintre instalarea unui pachet binar și compilarea dvs. este imperceptibilă pentru un utilizator.

    Și dezavantajele compilării sunt multe și dacă sunt clar perceptibile pentru utilizator. Prin urmare, personal fac un pas pentru a compila.

  24.   Nautilus el a spus

    Unde am observat cel mai mult performanța la compilarea kernel-ului, a fost pe un laptop cu procesor AMD 64. Schimbarea dintre kernel-ul din fabrică și cel compilat a fost brutală.

    În acest moment, am un nucleu din fabrică pe sistemul meu, pentru că așa cum se spune foarte mult pe aici, a fost un moment în care am compilat aproape totul și am obosit.

    În acest moment, compilez doar câteva programe de importanță vitală, cum ar fi să folosesc un server mic sau să mă joc cu emulatoare. Nu cu mult timp în urmă am făcut o postare despre cum să compilez versiunea mame. Aceste programe, în general, dacă observați când îl aveți optimizat pentru sistemul dvs.

    Trebuie doar să încerc distro-ul gentoo și să văd cum merge performanța.

  25.   Nautilus el a spus

    Am uitat să adaug, pentru persoanele care iau mult timp compilând nucleul, mai mult de 30 de minute, există mai multe trucuri pentru ao face în mai puțin timp.

    Unul dintre aceste trucuri este că, compilați doar modulele echipamentului dvs., maxim, poate cel mult 70 de module este ceea ce vi se pare și dacă adăugăm suportul iptables cu toate cerințele sale, cred că ar crește la 300 de module. Haide, este mult mai bine decât compilarea a 3000 de module impare, o cifră care rulează în prezent dacă modulele kernel sunt compilate pe măsură ce provin din fabrică sau așa cum se spune, vanilie.

    Programul care vă va ajuta să știți ce module recunoaște în prezent nucleul pe sistemul dvs. este „localmodconfig” sau utilizând acest script „streamline_config.pl” găsit în directorul sursă al nucleului, în calea „/ scripts / kconfig / »

    Desigur, asigurați-vă că aveți toate dispozitivele USB conectate, deoarece odată ce nucleul vă recunoaște toate modulele, este doar o chestiune de compilare.

    Nucleul va fi foarte ușor și veți simți un anumit aer de prospețime în sistem, precum și veți accelera pornirea și oprirea sistemului.

    Salutări.

  26.   tabris el a spus

    Viața nu este atât de ușoară! există programe care folosesc cmake sau alte lucruri, iar actualizarea și compilarea tuturor lucrurilor necesită timp. Și având un astfel de procesor, ce diferență va avea pentru tine?

  27.   yoyo el a spus

    Problema cu compilarea este că unele dintre programele pe care le instalăm cu această metodă nu sunt mai târziu dezinstalate sau generează erori atunci când facem acest lucru, deci nu le putem dezinstala.

    1.    anonim el a spus

      Trebuie să salvați folderul cu sursele compilate, atunci când doriți să dezinstalați, tot ce trebuie să faceți este să mergeți la folderul surse și de la un terminal ca executare root:

      # face dezinstalare

      Desigur, pachetele compilate manual în mod implicit în fiecare distribuție serioasă sunt instalate separat, adică în / usr / local / bin nu în / usr / bin unde managerul de pachete al distribuției le pune în mod implicit, așa. este împletit.

  28.   freebsddick el a spus

    Articolul ridică mai multe lucruri interesante, dar nu are o calitate teribilă în termeni și structură logică.

    «Într-un program executabil pentru funcționarea sa prin utilizarea PROCESORULUI pentru conversia limbajului utilizat pentru a genera codul în binar și asamblator. De asemenea, se numește adesea ambalare.

    Fals . se folosește de fapt un compilator este însărcinat cu trecerea instrucțiunilor unui anumit limbaj de programare în limbajul său corespunzător în limbajul de asamblare și apoi traducerea acestuia în limbajul mașinii.

    Limbajul de asamblare este un mnemonic care reflectă un grup de instrucțiuni rezidente în registrele cipului.

    „Când descărcați, decomprimați și compilați singur codul sursă al unui program, acesta este compilat cu instrucțiunile specifice ale procesorului DUMNEAVOASTRĂ”

    Când compilați un program, acesta se va face pur și simplu cu instrucțiunile comune arhitecturii. Depinde de fiecare utilizator să activeze semnalizatoarele corespunzătoare ale compilatorului pentru a optimiza un program pentru un procesor specific.

    Referitor la ceea ce comentați despre compilarea nucleului:
    Când compilați nucleul, căutați să activați sau să dezactivați caracteristici care pot sau nu să fie utile la un anumit moment, care nu se vor reflecta neapărat în relația de mărime și viteză în sarcina de execuție.

    Când faceți referire la următoarea secțiune:

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

    Aceste programe nu sunt esențiale pentru compilarea unui program. Așa cum ați încercat să spuneți la început, numărul limbajelor de programare vă împiedică să știți cu siguranță ce instrumente trebuie să aveți instalate pentru a putea compila programe în gnu / linux ... puteți ști asta doar consultând documentația programului pe care doriți să îl derulați. Programele pe care le menționați sunt utilizate pentru a DEBIANIZA și a împacheta în acel format un program care poate sau nu să fie compilat.

    Există alte probleme în articol care se dovedesc a fi oarecum ambigue în modul în care sunt formulate. Ar fi dificil să le abordăm pe toate.

    Vă sugerez revizuirea articolului cât mai mult posibil de către creatorul său și îndeamnă la un control mai bun al calității publicațiilor.

    1.    pepenrike el a spus

      Omule, nici asta nu e.

      Articolul nu este destinat revistei Science, este pur și simplu un articol introductiv și cred că, în termenii în care este scris, este suficient de profund pentru ca un utilizator începător să înțeleagă conceptele cheie.

      Dacă obținem studii academice, trei sferturi din ceea ce este publicat pe internet nu ar merita absolut nimic.

      Să nu fim atât de puristi ... este imposibil să fim de acord 100% cu un articol, dar nu putem evalua continuu calitatea „tehnică”, ca și când am fi evaluat un doctorat.

      Sprijinul meu deplin pentru autorul acestui articol

  29.   anonim el a spus

    articol interesant

    întotdeauna este bine ca iubitorii de libertate să folosească unar, în loc de rar, pentru a dezarhiva liber rarele. ( https://packages.debian.org/jessie/unar )

  30.   Jumi el a spus

    Am lovit eroarea cu această problemă ... Am început să caut în Google, dar nu găsesc un tutorial pentru a compila Firefox sub ubunto 14.04 amd64 biți ... altfel, în seara asta primesc nucleul cu următorul tutorial: http://www.redeszone.net/2014/11/28/como-instalar-el-ultimo-kernel-de-linux-en-ubuntu-14-04-lts/

  31.   carlos ferra el a spus

    articol bun, învăț multe. dar aș folosi acest lucru doar pentru un anumit program care consumă multe resurse, cum ar fi editorii video, de exemplu. Salutari.

  32.   hărmălaie el a spus

    Între acest articol și cel de la Gentoo pe care l-au publicat acum câteva zile m-au ispitit să instalez Gentoo pe computerul meu. Cu mulți ani în urmă am folosit Sabayon, care a facilitat întregul proces de instalare, dar a păstrat baza de compilare din sursă. Sincer, nu-mi amintesc să fi observat nicio diferență în ceea ce privește performanța laptopului meu (la vremea respectivă aveam un tur) cu Sabayon sau Ubuntu, așa că nu știu dacă îmi arunc toată munca de ștergere a Arch-ului meu care funcționează foarte bine pentru instalare. Nu sunt sigur că merită câteva milisecunde pe program.

    1.    anonim el a spus

      Dintre cele 4 bucăți cu gentoo pe care le-am instalat și actualizat, se adaugă notebook-ul care avea archlinux .... Systemd m-a obosit, a trebuit deja să-l folosesc cu startx pentru că în ultima actualizare ambele nuclee au filmat la 85% din utilizare, fără a face nimic, am cercetat și se pare că s-a schimbat ceva în systemd pentru a face Slim să înnebunească și să mănânce microprocesorul.
      Destul, a fost suficient cu arc ... prea mult timp a ținut, mai bine de doi ani, acum instalez gentoo, mă duc la actualizarea de testare stage3, pentru că în seara asta va merge un openbox cu cartofi prăjiți.

  33.   Leu el a spus

    Bun articol, mă face să vreau să compilez Qupzilla, dar cu un sempron va dura zile, ei bine, nu știu atât de multe, dar îmi dă totuși o senzație proastă.

  34.   Manuel Aponte el a spus

    Un alt dezavantaj al compilației este că, atunci când există o actualizare, este necesar să compilați și să instalați din nou actualizarea, ceea ce reprezintă o problemă, având în vedere că unele programe au cicluri scurte de dezvoltare și pentru acestea actualizările sunt emise frecvent, 2 - 3 luni, cu toate acest lucru, utilizatorul obișnuit se plictisește și utilizatorul constant consumă mult timp pentru a-și menține sistemul actualizat.

  35.   Manuel Aponte el a spus

    Aș dori să știu ce aplicații este mai recomandat să compilezi. în funcție de utilitate, frecvența actualizării și îmbunătățirea performanței.

  36.   Alex Pol el a spus

    Acest lucru este absurd, dacă trebuie să vă compilați, utilizați o distribuție greșită. Singurul motiv pentru a compila este să adăugați opțiuni de depanare pentru a vă încetini, în schimbul unei mai bune remedieri a erorilor altora.
    Sistemul dvs. nu este lent, deoarece are nevoie de -O3, este lent, deoarece există un program care citește prea mult pe disc sau pictează prea mult pe ecran.

    Recomandarea mea: în loc să micro-optimizăm sistemul nostru, să lucrăm ca o comunitate pentru a îmbunătăți software-ul pe care îl avem cu toții.

  37.   Javier Fernandez el a spus

    Nu ați explicat cum să optimizați compilația, de exemplu în Gentoo opțiunile USE sunt utilizate pentru a optimiza codul generat, trebuie să indicați și procesorul etc. Cum se face asta în UBUNTU / Debian sau Arch?, Articol interesant.

  38.   Jose Manuel el a spus

    Bine!

    În absența citirii comentariilor de mai jos, am un începător în Linux:

    Folosesc Fedora 20, am deja destul de multe lucruri instalate, de exemplu, browserul Firefox, pentru a-l compila pentru mașina mea, pot să o fac? Adică, sub cod și să-l compilez, sau trebuie mai întâi să elimin programul care deja Am descărcat pentru a compila noul ...

    La fel și cu kernel-ul Linux și altele ...

    Poate că întreb ceva absurd, dar spun deja că sunt destul de începător în chestiunile serioase cu Linux, lol

    Salutări!

    1.    Koprotk el a spus

      Cred că nucleul nu este necesar, dar trebuie să creați o intrare pentru fiecare nucleu în GRUB, cu firefox nu știu dacă este recomandat să aveți 2 firefox, personal prefer să am 1 doar nucleu și 1 numai firefox

  39.   st-avapxia el a spus

    Singurul lucru pe care l-am compilat în viața mea a fost o versiune în dezvoltarea Musique, îmi place foarte mult acea aplicație, a meritat tot timpul necesar procesului. Pentru un utilizator final ca mine, când am terminat, m-am simțit împlinit.

    Salutări, blog excelent.

  40.   eco-slacker el a spus

    Bună ziua, folosesc Slackware și compilarea aplicațiilor este cel mai normal lucru din lume.
    Sistemul este instalat dintr-un ISO deja precompilat, iar aplicațiile precompilate pe care le puteți utiliza din depozitul oficial sunt puține, deși, dacă doriți, puteți descărca codul sursă al sistemului (și scripturile originale cu care este compilată întreaga distribuție ) și compilați-l singur, așa îmi imaginez că funcționează Gentoo.
    Cu toate acestea, proiectul SlackBuilds oferă scripturi (similare distribuției oficiale) pentru multe aplicații terțe, în care descărcați codul sursă a ceea ce doriți să instalați și îl convertiți într-un pachet tgz sau txz care este instalat ulterior cu acesta. manager de pachete oficial al distro. Prin urmare, avantajul este că evitați să utilizați comenzile de configurare, make, make install și puteți actualiza, reinstala sau elimina pachetul ca oricare altul și foarte ușor.
    Dezavantajul este că dependențele nu sunt rezolvate automat în Slackware ca în alte distribuții, deci trebuie să compilați mai întâi dependențele necesare și aplicația pe care doriți să o instalați ultima. Programele pe care le-am compilat sunt de la LibreOffice, Texmaker, Spyder, Qt5, QtCreator, VLC, Wine, GRASS, QGis, printre altele. În funcție de aplicație și cerințele sale, compilarea și instalarea pot dura de la 5 minute la câteva ore. Dar, dacă doriți, puteți găsi și utiliza un pachet precompilat pentru a vă economisi timp.
    Nu am avut timp să verific dacă există o mare diferență între pachetele compilate și cele precompilate, dar sistemul meu este foarte stabil. Dar cred că cel puțin în laptopul meu nu există prea multe diferențe, deoarece nu este atât de puternic, are un procesor i3 și 4 GB RAM.
    Salutări și noroc compilând.

  41.   Koprotk el a spus

    În prezent folosesc Funtoo, ca să fiu sincer, nu văd nicio diferență de performanță între compilarea unui program sau instalarea celui precompilat, o fac pur și simplu cu scop educativ, dar dacă există diferențe între compilarea kernel-ului și nu realizarea acestuia, da . Când foloseam debian și doream să compilăm ceva, am folosit următoarea secvență:

    . / Configurare
    Faceți -j3 (număr de nuclee + 1)
    Străin

    Am folosit alíen pentru că creează un binar al programului compilat și astfel îl puteți instala pe sistemul dvs. ca orice binar, și astfel, dacă doriți să dezinstalați, puteți utiliza pur și simplu synaptic sau un alt manager de pachete, acesta este avantajul creării pachetului și instalării pachetului ca atare, în loc să faci „make install”

    1.    yukiteru el a spus

      Văd o îmbunătățire, cel puțin cu pachetele mari și grele, de exemplu, Libreoffice în Funtoo necesită mult mai puțin timp pentru încărcare decât în ​​Debian, la fel mi s-a întâmplat și cu VLC sau cu mpv și MKV FullHD și fișiere multi-audio, încărcarea este mult mai rapidă.

      Un alt lucru care a suferit schimbarea este și Firefox, în Debian având 10 sau 15 file cu computerul meu devine tortură, dar cu Funtoo am reușit să am până la 30 de deschise și continuă de parcă nimic și consumul de ram este mult mai mic și mai mic Având tendința de a îngheța fișierele JS, cred că depinde mai mult de contextul în care sunt executate anumite sarcini și programe.

  42.   Marco Sarmiento el a spus

    Problema este că, atunci când o descărcăm precompilată, transformăm orice distribuție Linux într-o copie brută a Windows

  43.   Fermin el a spus

    Mai mult decât într-o creștere spectaculoasă a performanței, văd avantajul în posibilitatea de a compila pachetele cu componentele pe care cineva le dorește: de exemplu, dacă nu aveți o imprimantă puteți indica că pachetele cu suport pentru CUPS nu sunt compilate -pachetele că folosesc CUPS, evident, dacă compilați Hunspell cu sau fără CUPS, nu va conta - doar-cel puțin în Gentoo- indicând în fișierul make.conf, unde toate opțiunile pentru construirea pachetelor sunt „-cups” centralizate; dacă utilizați KDE5 sau Plasma 5, așa cum o numesc acum, puteți specifica etichetele „-kde”, „-qt4”, care erau etichete valide pentru KDE 4, dar inutile în KDE 5 și aplicații portate pe noul desktop, „-gnome” , „-Gtk” și așa mai departe cu orice componentă de care știți că nu aveți nevoie. Dacă dintr-un anumit motiv are nevoie un anumit program, să spunem GTK, atunci puteți, într-un fișier numit package.use, să indicați că folosește GTK, de exemplu pentru Pidgin cu aceeași etichetă, dar fără semnul minus, adică „gtk »:« Net-im / pidgin gtk ».
    În acest fel, se realizează un sistem cu câteva sute de megabyți mai ușor și mai mici și mai eficiente, deoarece nu are cod inutil. Am trecut de la Ubuntu la Gentoo prin Opensuse, Kubuntu, Debian, Arch, Chakra sau KaOS, iar Gentoo este cel mai rapid sistem pe care l-am avut și am încă același Core 2 Duo pe care l-am avut acum 7 ani. Desigur, las compilațiile pentru noapte, deoarece compilarea QT5, de exemplu, durează câteva ore. Dacă setați parametrul „frumusețe” pentru Portage în make.conf puteți instala pachete sau actualiza în timp ce continuați să lucrați cu mașina și cu greu observați o încetinire, deși, evident, timpul de compilare crește; dar hai, cu instalarea sau actualizarea acestuia când merg la cină și, dacă este necesar, lăsându-l să funcționeze peste noapte, vechiul meu computer funcționează mai bine decât I3-ul iubitei mele cu Kubuntu.

    Un alt aspect din ce în ce mai important este că atunci când compilați din fișiere sursă, securitatea că pachetul pe care îl instalăm este cel original, că nu a fost manipulat de terți, este aproape complet. Cred că Debian implementează un sistem de verificare a compilării care va garanta puțin mai mult decât precompilarea pe care am instalat-o de fapt provine din sursa originală, dar nu va exista niciodată atât de multă certitudine când acel pachet a fost compilat pe computerul nostru cu configurarea noastră.
    După părerea mea, cu un procesor modern, nu cu un clichet ca al meu, hehe și, dacă vrem să grăbim procesul, cu 8 GB RAM pentru a putea monta / var / tmp-folderul temporar pe care îl folosește Portage compilare- în RAM, care va fi întotdeauna mai rapidă decât un hard disk sau un SSD, astăzi nu văd prea mult rost să folosesc pachete precompilate. Dacă computerul meu Firefox durează aproximativ 40 de minute pentru a compila, cât poate dura un I5 sau un I7 care sunt în prezent pe piață, 5 minute, chiar mai puțin? Vorbesc despre sursa firefox, nu firefox-bin, care este un pachet binar precompilat care poate fi instalat pe Gentoo dacă aveți o mașină foarte lentă - există mai multe pachete mari care sunt deja oferite precompilate din acest motiv, este nu obligatoriu pentru a compila totul -. Nu pot vorbi pentru că prietena mea nu mă lasă să mă lăud cu computerul ei, hehe, și al meu merge atât de bine încât nu simt nevoia să-l reînnoiesc, dar dacă am dreptate, cred că merită să-l pierd. câteva minute compilând pentru a avea un sistem pe măsură. Mai ajustat și adaptat mașinii noastre, nu cred că se poate obține nimic fără a intra în acele metode Linux de la zero, Linux de la zero, care cred că este deja rezervat informaticienilor sau cunoscătorilor Linux foarte avansați.

    Salutări.

  44.   Rață el a spus

    Foarte bine!
    un singur lucru nu există „Amd Atom x2”
    ni existira este o marcă comercială a intel
    salutări