Gentoo: De ce am ales să-mi complez propriile programe?

Ei bine, având în vedere recepția minunată a postării mele anterioare, vin să vă povestesc puțin mai multe despre distribuția mea preferată, Gentoo Linux. Promit că această postare va avea informații distractive care vă vor ajuta să înțelegeți puțin despre miturile care apar în fața înfricoșătorului compilare de software. De asemenea, promit că aceste informații vor fi utile pentru următorul ghid de instalare Gentoo Linux în aproximativ 20 de pași (nu le-am numărat încă bine, dar cred că sunt și mai puține). Fără alte întrebări, să începem:

Ce este compilarea?

Este procesul pe care îl efectuează un program (denumit în mod obișnuit un compilator) pentru a converti codul scris în limbaj uman (fișiere C, C ++ etc.) în cod care poate fi înțeles de o mașină (cod binar). Să vedem următorul exemplu:

Design propriu, Christopher Díaz Riveros

Acesta este micul nostru program C (dacă doriți alte tutoriale C mai târziu, voi fi bucuros să vă arăt cât de puțin am învățat și în acest timp). Acum să vedem cum arată ieșirea după compilare.

Design propriu, Chrirstopher Díaz Riveros

Frumos, nu-i așa? 🙂 Acesta este ceea ce înțelege mașina noastră pentru a putea scrie acel mic "Bună ziua" în terminalul nostru de fiecare dată când programul este executat.

Procesul de construire:

Deoarece este inutil să aveți un program care imprimă un simplu "Hello" pe ecran, deoarece fișierele .c și .h sunt abundente în proiecte (ca în toate limbajele de programare). Pentru a face procesul de compilare un pic mai ușor, au apărut noi instrumente, cea mai reprezentativă dintre toate este comanda face.

Make ia un dosar Makefile ca punct de plecare și compilează ceea ce este necesar pentru a crea executabilul final, în unele cazuri acest pas necesită executarea unui fișier numit configure pentru a putea atribui câteva variabile necesare compilatorului pentru a compila (iertați redundanța) un fișier util.

Acesta este motivul pentru care în multe tutoriale vom găsi următorii pași:

Proprie. Christopher Diaz Riveros

Magia ./configure:

Pentru a vă arăta unul dintre cele mai ascunse și distractive secrete ale codului sursă, vom merge la codul sursă al unui program pe care îl știm cu toții perfect, sudo. Mai întâi pașii obișnuiți, dar mă opresc la . / Configurare  să le arăt ceva special.

Proprie. Christopher Diaz Riveros

Aceasta vă va întoarce o listă lungă de opțiuni, printre care vă voi arăta cea care îmi atrage cel mai mult atenția.

Proprie. Christopher Diaz Riveros

--with-insults... după cum sugerează și numele, compilează sudo cu insulte 😀 este o funcție distractivă care vă permite să trimiteți o insultă utilizatorului de fiecare dată când greșește parola. Pentru ce este? Ei bine, nu cu mult timp în urmă 😛 dar clarifică un punct. Există mii de opțiuni care nu apar în mod implicit în majoritatea distribuțiilor.

Așa cum sunteți, există multe altele care pot fi active în distribuțiile de coduri binare și pe care nu le veți folosi niciodată, sau vor fi unele de care aveți nevoie, dar acestea nu vor veni împreună cu binarul dvs. distribuit oficial, ceea ce implică faptul că fiecare actualizare va fi manuală.

Distrați-vă pe Gentoo:

Am văzut deja câte opțiuni putem lipsi sau trage cu programele precompilate. Dar acum să ne concentrăm puțin asupra problemei precompilate.

Performanță:

V-ați întrebat vreodată de ce mașinile noi arată doar puțin mai repede în comparație cu cele nu atât de moderne? Dacă procesorul este mai bun, există mai multă memorie RAM, totul este mai bun, de ce să nu mergi mai repede? Răspunsul este simplu ... compilare.

Să luăm un exemplu foarte practic.

Programele mele sunt compilate cu opțiunea --march=broadwell... asta pentru că procesorul meu este broadwell (intel i7). Dezavantajul acestui lucru? niciun procesor anterior Broadwell nu este capabil să recunoască acest binar. În acest moment ar trebui să o vedeți foarte clar, dacă compilez cu un -Martie  specific, toate cele de mai sus nu vor funcționa ... deci cum suportă pachetele binare atât de multe tipuri de hardware? Ușor, compilează cu cea mai mică opțiune posibilă 🙂 acest lucru garantează că toate tipurile de hardware îl vor putea citi (cel puțin pentru compatibilitate).

Adevărata problemă ... dacă folosiți programe care sunt compilate pentru i3 ... Toată puterea i7-ului dvs. (sau a analogiilor sale AMD respective) este irosită !! Nu este trist? 🙁

flexibilitate:

Deoarece dezvoltatorii Gentoo sunt foarte inteligenți, acest întreg proces de tar, ./configure, make, etc ... a fost înlocuit cu puterea taxă de transport. Toate aceste setări curioase au fost redenumite steaguri USE, așa că, dacă doriți o anumită setare, nu este necesar să introduceți codul sursă, ci doar setați variabila. Iată un exemplu de cum se face cu sudo în portage. Mai întâi vom vedea cu ce opțiuni avem în configurația noastră curentă ecvestru.

Proprie. Christopher Diaz Riveros

După cum putem vedea, opțiunile roșii sunt activate, cele albastre nu, ei bine ... toată lumea poate citi legenda 🙂

să presupunem că vreau să adaug o opțiune ...

Proprie. Christopher Diaz Riveros

La fel de simplu ca adăugarea unei linii într-un fișier numit sudo (numele este referențial) în /etc/portage/package.use/. Cu aceasta data viitoare când vom instala sudo ne va spune că va fi recompilat cu opțiunea activată.

Proprie. Christopher Diaz Riveros

Dacă dăm, DA, tot ce trebuie să faceți este să așteptați puțin și voila 🙂 la fel de simplu ca acesta.

Ultimele gânduri:

Ei bine, am văzut deja cât de ușor este să gestionăm funcționalități suplimentare în Gentoo, ceea ce ne permite să adăugăm, să eliminăm sau să modificăm opțiuni din programele noastre preferate. De asemenea, am văzut cum performanța programelor noastre depinde foarte mult de variabilele cu care le compilăm. Dacă aveți o mașină foarte nouă, Gentoo este cea mai bună opțiune. Dacă aveți o mașină foarte veche, Gentoo este, de asemenea, opțiunea dvs. (deși durează ceva timp pentru a compila, programele finale vor fi mult mai ușoare).

Voi scrie în scurt timp ghidul meu de instalare Gentoo, atât pentru iubitorii de SystemD, cât și pentru aventurierii OpenRC (folosesc systemd cu GNOME). Apropo, un alt mare avantaj al Gentoo este posibilitatea alege totul din interiorul sistemului tău și când spun că totul este TOATE.

Dacă ați ratat prima mea postare, iată linkul:

Gentoo Linux: povestea unei călătorii

Salutari,


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.   Mart el a spus

    Grozav! Voi aștepta ghidul de instalare Gentoo cu Gnome. Poate sunt încurajat să migrez către Gentoo chiar dacă mai am un PC ușor vechi (intel core i5 3rd gen.). Noroc!

    1.    chrisadr el a spus

      Destul de curând, Mart ganó m-a cucerit să împărtășesc mai multe lucruri, așa că am scris o altă postare care așteaptă să fie publicată, dar foarte curând 🙂 Promit

  2.   njord el a spus

    Cred că voi începe să văd o mulțime de postări pe aici despre distribuția mea preferată de Linux o!!
    Sunt în Gentoo din 2005, unde l-am folosit pentru a configura un server de poștă electronică la universitatea unde am studiat (și unde lucrez acum) și, deși am suferit atacuri sporadice de distrohopping, ajung întotdeauna să mă întorc cu dragul meu Gertroodis (primul cu Gnome2, apoi Xfce și acum openbox) și, după cum comentezi în postarea ta anterioară, cu abilități și cunoștințe tot mai mari pentru a-l regla 😉
    Voi aștepta următoarele contribuții, salutări și mulțumiri pentru că mi-am făcut ziua = D!

    1.    chrisadr el a spus

      Ei bine, următorul va ieși 🙂 este ca și cum ai avea o conversație amuzantă despre subiectul meu preferat, următorul va veni în curând și următorul și următorul 😛 Salutări și mulțumesc foarte mult pentru comentariu 🙂

  3.   Învingător el a spus

    Am sărit între distrosuri de ani de zile și mă gândeam să-l compilez pe al meu ... acel ghid va fi pasul care îmi lipsea ... în timp ce mă voi distra cu manualul. Multumesc pentru tot……

    1.    chrisadr el a spus

      Ei bine, manualul este un paradis al informațiilor, pur și simplu există totul 🙂 Nu pot decât să-mi aduc micul bob de nisip 🙂 dar foarte curând, următorul mesaj va ieși și în curând va ieși (deja văd că este destul de așteptat) ~ 20 de pași ghid de instalare. Salutari,

      1.    Învingător el a spus

        Ce domn nu mi-ai dat timp să trec de la început care vorbește despre diferitele microprocesoare și ghidul este aici !!!!! Acest sfârșit al meu a încurcat pentru PRIMUL! !!! Milioane de mulțumiri !!!!

  4.   soimicmic el a spus

    Knoppix, Mandrake, Ubuntu și Debian ... Și mereu gândindu-mă la Gentoo ...

    În așteptarea celor 20 de pași!

    1.    chrisadr el a spus

      Hahaha, e ca un vis, nu-i așa? 🙂 Spun că a sosit timpul să se întâmple 😉 salutări

  5.   Răcoros ca gheață el a spus

    Bună, ChrisADR, mai întâi vreau să vă spun că nu am dormit bine de la primul articol despre Gentoo și este legat de acest nou articol, visele mele se bazează pe compilarea unui Gentoo pe vechiul meu Aspire One Netbook. În visul meu, sistemul îmi spune că netbook-ul meu este foarte vechi, deci nu recunoaște hardware-ul.
    Pe de altă parte, după ce am văzut un Gentoo și mi-a atras atenția, au menționat puterea pe care o oferea computerului (computerului). Din acea zi mi-am spus că într-o zi îl voi instala, au trecut mai mult de 10 ani și nu am făcut-o, poate pentru că mi-au spus că este foarte dificil să-l instalez, la acel moment eram aproape anti-linux, așa că mi-au sporit nemulțumirea față de acesta. Cu toate acestea, curiozitatea a continuat. Odată, am încercat să instalez un BSD pe netbook-ul meu fără niciun succes și mi s-a spus că Gentoo era un Linux foarte asemănător cu BSD.
    Ce îmi recomandați pentru a instala Gentoo pe vechiul meu Aspire One cu vechiul compilator Atom?

    și vă mulțumesc foarte mult pentru articolele pe care le aștept în continuare

    1.    ChrisADR el a spus

      Ei bine, îți recomand ... FĂ-O! Și, în cele din urmă, dacă în cele din urmă nu reușește (ceea ce mă îndoiesc foarte mult, deoarece nucleul este conceput pentru a suporta tot felul de hardware), veți avea o experiență extrem de îmbogățitoare în lumea Linux Linux veți fi compilat nucleul dvs., veți avea ți-ai montat sistemul de fișiere de la zero, vei fi făcut configurații pe care puțini le fac în viața lor 🙂 îți va oferi o nouă perspectivă asupra lumii hahaha Dacă nu poți vedea profilul Unix & StackExchange answers răspunsurile mele acoperă gama largă de linux acolo se datorează faptului că cunoașterea Gentoo mi-a permis să învăț multe lucruri despre tot Linux 😉 Vă las linkul profilului meu aici

      https://unix.stackexchange.com/users/246185/christopher-d%C3%ADaz-riveros?tab=profile

      Nu vă fie teamă și, în cele din urmă, dacă totul merge bine (sigur va costa puțin) va fi o realizare pentru cartea dvs. reet Salutări

  6.   Esteban el a spus

    De asemenea, mă gândesc să migrez către Gentoo, dar am unele îndoieli. În primul rând, cât de actualizate sunt pachetele pentru Arch? Pe de altă parte, laptopul meu are o baterie încorporată și știm cu toții ce înseamnă căldura excesivă constantă asupra bateriilor. Și din moment ce aș petrece mult timp compilând ...

    1.    ChrisADR el a spus

      Ei bine, adevărul nu ți-ar putea spune cu siguranță care dintre ele este Rolling Release 😛 ceea ce îți pot spune cu certitudine este că Gentoo are două ramuri: „stabil” și „nu stabil”, deși „nu stabil” trebuie să aibă majoritatea pachetelor la marginea tehnologiei, am mulți dezvoltatori bine-cunoscuți care îl folosesc în fiecare zi fără complicații. Multe dintre acestea sunt făcute să funcționeze cu depozitele git ale proiectului, deci nu este nimic mai actual 🙂 Eu personal folosesc ramura „stabilă”, dar acest lucru se datorează mai ales datorită muncii mele în cadrul comunității ca coordonator de securitate și ca membru al echipa de testare (Arch Tester). Dacă nu ar trebui să aveți o versiune „stabilă” pentru acel loc de muncă, cu siguranță ați fi la marginea tehnologiei cu „nu este stabil”.
      Nu știu dacă vă răspunde la întrebare, dar cel puțin sper să vă atragă suficient atenția pentru a o încerca 😛 Cu respect

  7.   Quijote gratuit el a spus

    Adevărul este că mă faci să vreau să 😉
    Sunt foarte interesat de ceea ce ai indicat despre tutorialele C, precum și despre Python și aș aprecia dacă ai vreo bijuterie ascunsă acolo pentru bunicii neîndemânatici.
    Pentru că ți-am dat niște bețe și cu toate respecturile mele, deoarece consider că conținutul este mai important decât continentul, dar cum sunt un pic cam agitat cu limba, îți voi spune un lucru mic.
    Spui la început:
    „Compilarea este procesul pe care îl realizează un compilator pentru a utiliza codul scris în limbaj uman și a-l converti în cod care poate fi înțeles de o mașină.”
    În opinia mea, nu este corect să includeți ceea ce este definit în definiție, deoarece pentru a defini compilația includeți termenul de compilator, deci ceva de genul acesta ar fi fost ceva mai corect:
    Compilarea este procesul prin care un program obține dintr-un fișier text scris într-o limbă (C, C ++) un fișier executabil de computer.

    1.    ChrisADR el a spus

      Contribuția dvs. mi se pare corectă, o acomodez pentru a încerca să o păstrez în esența sa și să adaug aceste informații 😉 mulțumesc.

  8.   Dublu D el a spus

    Folosesc Ubuntu 16.04, crezi că ar trebui să trec la gentoo? Care ar fi avantajele gentoo față de Ubuntu?

    1.    ChrisADR el a spus

      Ei bine, chiar nu știu depends depinde de ceea ce veți face cu echipamentul dvs. sau de hardware-ul pe care îl aveți sau dacă aveți timp (și dorință) să învățați cum să utilizați Gentoo. V-aș spune că, dacă aveți timp și doriți, puteți merge înainte! și veți vedea că veți învăța multe pe parcurs 😉
      În ceea ce priveşte

  9.   fernan el a spus

    Hi
    Dacă adevărul este că gentoo are multe de citit, de exemplu, faceți un pachet emerge -pv și primiți utilizări în roșu, albastru și verde, plus posibile încuietori care necesită modificări de utilizare, demascarea pachetelor, modificările sloturilor sunt foarte diferite afișat de ceilalți manageri de pachete.
    Presupun că gentoo va trebui să fie actualizat în fiecare zi, dacă îl lăsați timp de 1 lună, va fi timpul să vă dați seama cum să îl remediați.
    Salutări.

    1.    ChrisADR el a spus

      Da, hehe, la început se formează puțin 🙂 dar în timp te familiarizi și chiar ajungi să te gândești de ce în niciun alt manager de pachete nu ai atât de multă flexibilitate 🙂 în ceea ce privește timpul, cunosc oameni care au același server funcționează de ani de zile fără actualizare și rămâne complet ferm ca prima zi, iar pentru cei care au fost acolo de ani de zile (nu luni) există o secțiune specială a wiki care descrie posibile soluții la problemă:

      https://wiki.gentoo.org/wiki/Upgrading_Gentoo/es#Actualizar_sistemas_antiguos

      Și în ceea ce privește actualizările, poate că a vedea direct problemele de securitate m-a determinat să iau o nouă perspectivă, dar actualizarea în fiecare zi este ceva care, indiferent de distribuție, ar trebui să se facă, de obicei nu ia mai mult de două comenzi în toate distribuțiile , iar în gentoo, pe lângă generarea unui obicei bun, evită așteptările lungi atunci când toate pachetele sunt acumulate.
      În ceea ce priveşte

  10.   fernan el a spus

    Hi
    În distribuțiile binare, folosesc manjaro și înainte de a folosi ubuntu, este ușor de actualizat, verific în fiecare zi dacă există actualizări, este primul lucru la care mă uit, dar în actualizarea manjaro nu mi-au dat probleme relevante, de obicei îi spun lui pacman că da la toate și cel mult trebuie să actualizați semnăturile sau chiar să ștergeți un fișier. Dar, din ceea ce am citit în gentoo, terminologia este uneori dificil de înțeles ce spune portage.
    Salutări.

    1.    ChrisADR el a spus

      Spune da pentru tot ce nu este niciodată bun fernan 🙂 dacă ai ajuns la GNU / Linux ar trebui să-l știi și să-l înțelegi. Ei bine, nimic de văzut, este pur și simplu personalizat, în timp îți dai seama că roșu este ceea ce ai, albastru ceea ce nu ai, verde ce ai de gând să adaugi și gata :). Nu trebuie să schimb nimic pentru a actualiza dacă am configurat corect pentru a începe, ocazional adaug sau elimin steaguri USE, dar lucrul obișnuit este să dau Y de da după ce am citit lista pentru a ști ce se face 🙂
      PS: pacman -Syy este la fel ca emerge -sync
      Pacman -Suy este același cu emerge -uD @world (-av este doar să fie detaliat și vă întreabă înainte de a continua, ceea ce nu este necesar dacă vă cunoașteți echipa și știți ce faceți, dar am pus-o să evit probleme mai târziu 😉) Nu văd atât de greu să țin minte 🙂

      În ceea ce priveşte

  11.   Mauricio Lopez el a spus

    Excelent articolele tale, atât precedentul, cât și acesta. Am o îndoială și este câtă viteză câștigi între Arch sau Manjaro și Gentoo. Indiferent de personalizare și învățare în sine, acestea fac să merite instalarea.
    O altă întrebare pe care o am este cum să mă ocup de șoferi, acest lucru mi-a dat probleme în Arch.

    1.    ChrisADR el a spus

      Buna Mauricio,
      Ei bine, nu m-am oprit niciodată să fac referință între cele două și, în realitate, este o întrebare foarte ambiguă, în funcție de software-ul pe care îl utilizați și de echipamentul pe care îl aveți, acest lucru poate varia de la puțin sau nimic la mult. Cel puțin astăzi ambele sisteme funcționează destul de bine pentru mine în ceea ce trebuie să le folosesc. (Am un Gentoo principal și un Arch pe care îl folosesc din când în când) În mod normal, îl folosesc în virtualizare și editare de programe (dar de obicei prin terminal, astfel încât să nu folosească multă memorie într-un IDE. Chrome mă sprijină într-un mod total calm mai mult de 40 de file (am încercat asta din când în când, deși, în general, am doar 5 deschise pentru perioade lungi de timp.
      Dacă într-o zi îndrăznești să încerci, spune-mi cum a mers 🙂

      În ceea ce privește driverele, din moment ce controlați kernel-ul după bunul plac, în mod normal majoritatea driverelor „obișnuite” sunt instalabile sau cel puțin gestionabile. În cazul hardware-urilor extrem de specializate (în special cele puțin compatibile cu Linux în general), presupun că este aceeași treabă ca în multe alte distribuții, nu am un hardware specializat, așa că nu pot să comentez prea multe despre el 🙂

      Salutări și noroc

  12.   Jeanpier subero el a spus

    care sunt rețelele dvs. sociale ChirsADR?