Gentoo: Zašto sam odabrao da kompajliram svoje programe?

Pa, s obzirom na sjajan prijem mog prethodnog posta, došao sam da vam kažem nešto više o mojoj omiljenoj distribuciji, Gentoo Linuxu. Obećavam da će ovaj post sadržavati zabavne informacije koje će vam pomoći da razumijete malo o mitovima koji se pojavljuju pred strašnim kompilacije softvera. Također obećavam da će ove informacije biti korisne za sljedeći vodič za instalaciju Gentoo Linuxa u ~ 20 koraka (još ih nisam dobro izbrojao, ali mislim da su još manje). Bez daljnjeg razgovora, počnimo:

Šta je kompajliranje?

To je postupak koji program (koji se obično naziva kompajlerom) izvodi za pretvaranje koda napisanog na ljudskom jeziku (C, C ++ datoteke, itd.) U kôd koji mašina može razumjeti (binarni kod). Pogledajmo sljedeći primjer:

Vlastiti dizajn, Christopher Díaz Riveros

Ovo je naš mali C program (ako kasnije želite druge C vodiče, rado ću vam pokazati i ono malo što sam naučio u ovom trenutku). Sada da vidimo kako izgleda izlaz nakon kompajliranja.

Vlastiti dizajn, Chrirstopher Díaz Riveros

Divno, zar ne? Our To je ono što naša mašina razumije da može zapisati ono malo „Zdravo“ na naš terminal svaki put kad se program izvrši.

Proces izrade:

Kako je beskorisno imati program koji na ekran ispisuje jednostavno "Zdravo", jer .c i .h datoteke obiluju projektima (kao u svim programskim jezicima). Kako bi postupak kompilacije bio malo lakši, pojavili su se novi alati, najreprezentativnija od svih je naredba napraviti.

Make uzmi datoteku Makefile kao početnu točku i prikuplja ono što je potrebno za stvaranje konačne izvršne datoteke, u nekim slučajevima ovaj korak zahtijeva izvršavanje datoteke zvane configure kako bi mogao dodijeliti nekoliko varijabli neophodnih kompajleru za kompajliranje (oprostite suvišnosti) korisne datoteke.

Zbog toga ćemo u mnogim tutorijalima pronaći sljedeće korake:

Svoje. Christopher Diaz Riveros

Magija ./configure:

Da bismo vam pokazali jednu od najskrivenijih i najzabavnijih tajni izvornog koda, idemo na izvorni kod programa koji svi savršeno znamo, sudo. Prvo uobičajeni koraci, ali zaustavit ću se na tome ./configure  da im pokažem nešto posebno.

Svoje. Christopher Diaz Riveros

Ovo će vam vratiti dugačku listu opcija, među kojima ću vam pokazati onu koja najviše privlači moju pažnju.

Svoje. Christopher Diaz Riveros

--with-insults... kao što naziv govori, kompajlira sudo sa zlostavljanje 😀 je zabavna funkcija koja vam omogućava da uvredu pošaljete korisniku svaki put kad pogriješi u lozinci. Čemu služi Pa, ne tako davno 😛, ali jedan je stav jasan. Postoje hiljade opcija koje u većini distribucija ne dolaze prema zadanim postavkama.

Kao i vi, postoje mnogi drugi koji mogu biti aktivni u distribuciji binarnog koda i koje nikada nećete koristiti, ili će biti nekih koji su vam potrebni, ali oni neće biti isporučeni s vašim službenim distribuiranim binarnim kodom, što znači da će svako ažuriranje biti priručnik.

Nabavite zabavu na Gentoo-u:

Već smo vidjeli koliko opcija može propustiti ili povući s unaprijed sastavljenim programima. No, usredotočimo se malo na prethodno sastavljeni problem.

performanse:

Jeste li se ikad zapitali zašto nove mašine izgledaju samo malo brže u odnosu na ne tako moderne? Ako je procesor bolji, ima više RAM-a, sve je bolje, zašto ne ići brže? Odgovor je jednostavan ... kompilacija.

Uzmimo vrlo praktičan primjer.

Moji programi su kompajlirani sa ovom opcijom --march=broadwell... to je zato što je moj procesor broadwell (intel i7). Loša strana ovog? nijedan procesor prije Broadwella nije u stanju prepoznati ovu binarnu datoteku. U ovom trenutku trebali biste to vrlo jasno vidjeti ako kompajliram s a –Ožujak  konkretno, sve gore navedeno neće raditi ... pa kako binarni paketi podržavaju toliko vrsta hardvera? Jednostavno, kompajliraju se s najmanje mogućom opcijom 🙂 to garantira da će ga svi tipovi hardvera moći pročitati (barem radi kompatibilnosti).

Pravi problem ... ako koristite programe koji su kompajlirani za i3 ... Potrošena je sva snaga vašeg i7 (ili njegovih odgovarajućih AMD analogija) !! Zar to nije tužno? 🙁

Fleksibilnost:

Budući da su programeri Gentoo vrlo pametni, čitav ovaj proces tar, ./configure, make, itd ... zamijenjen je snagom Portage. Sve ove znatiželjne konfiguracije preimenovane su u USE zastavice, pa ako želite određenu konfiguraciju, ne trebate unositi izvorni kod, samo konfigurirajte varijablu. Evo primjera kako se to radi sa sudo u portageu. Prvo ćemo vidjeti koje opcije imamo u našoj trenutnoj konfiguraciji equiry.

Svoje. Christopher Diaz Riveros

Kao što vidimo, crvene opcije su aktivirane, plave nisu, pa ... svi mogu pročitati legendu 🙂

recimo da želim dodati opciju ...

Svoje. Christopher Diaz Riveros

Jednostavno kao dodavanje retka u datoteku koja se zove sudo (ime je referencijalno) unutar /etc/portage/package.use/. Ovim će nam sljedeći put kada instaliramo sudo reći da će se prekompajlirati s aktiviranom opcijom.

Svoje. Christopher Diaz Riveros

Ako damo, DA, sve što trebate je pričekati malo i voilati 🙂 jednostavno kao ovo.

Završne misli:

Pa, već smo vidjeli kako je lako rukovati dodatnim funkcijama u Gentoo-u, što nam omogućava dodavanje, uklanjanje ili izmjenu opcija u okviru naših omiljenih programa. Također smo vidjeli kako izvedba naših programa uvelike ovisi o varijablama s kojima ih kompajliramo. Ako imate vrlo novu mašinu, Gentoo je vaša najbolja opcija. Ako imate vrlo staru mašinu, Gentoo je takođe vaša opcija (iako je potrebno neko vrijeme za sastavljanje, konačni programi će biti puno lakši).

Uskoro ću napisati svoj Gentoo vodič za instalaciju, kako za ljubitelje SystemD-a, tako i za OpenRC avanturiste (koristim systemd sa GNOME-om). Inače, još jedna velika prednost Gentoo-a je sposobnost da izaberite sve u vašem sistemu, i kad kažem da je sve URADITI.

Ako ste propustili moj prvi post, evo linka:

Gentoo Linux: Priča o putovanju

pozdrav,


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.   Mart rekao je

    Super! Čekat ću Gentoo sa Gnome vodičem za instalaciju. Možda me ohrabruje da migriram na Gentoo čak i ako imam još malo stari računar (intel core i5 3. generacije). Živjeli!

    1.    chrisadr rekao je

      Ubrzo me Mart 😉 pridobio da podijelim još stvari, pa sam napisao još jedan post koji čeka objavljivanje, ali vrlo brzo promise obećavam

  2.   njord rekao je

    Mislim da ću ovdje početi vidjeti puno postova o svojoj omiljenoj linux distribuciji o!!
    U Gentoo-u sam od 2005. godine gdje sam ga koristio za postavljanje poštanskog servera na univerzitetu na kojem sam studirao (i gdje sada radim) i premda sam pretrpio sporadične napade distrohoppinga, uvijek se na kraju vraćam sa svojim dragim Gertroodisom (prvo s Gnome2, zatim Xfce i sada openbox) , i dok komentarišete u svom prethodnom postu, sa sve većim vještinama i znanjem kako biste ga fino podesili 😉
    Čekat ću vaše sljedeće doprinose, pozdrave i hvala što ste mi uljepšali dan = D!

    1.    chrisadr rekao je

      Pa, slijedeći izlazi 🙂 to je kao da vodite zabavan razgovor o mojoj omiljenoj temi, sljedeći dolazi uskoro, a sljedeći i sljedeći 😛 Pozdrav i hvala vam puno na komentaru 🙂

  3.   Víctor rekao je

    Godinama sam skakao između distroa i razmišljao o tome da sastavim svoje ... taj vodič će biti korak koji mi je nedostajao ... dok ću se zabaviti priručnikom. Hvala za sve……

    1.    chrisadr rekao je

      Pa, priručnik je raj za informacije, jednostavno postoji sve 🙂 mogu dati samo svoje malo zrnca pijeska 🙂, ali vrlo brzo izlazi sljedeći post, a uskoro i onaj (već vidim da se to sasvim očekuje) ~ 20 koraka vodiča za instalaciju. Živjeli,

      1.    Víctor rekao je

        Kakav gospodin mi od početka niste dali vremena da prođem koji govori o različitim mikroprocesorima i vodič je ovdje !!!!! Ovaj moj kraj je zabrljao PRVI! !!! Milioni hvala !!!!

  4.   soimičan rekao je

    Knoppix, Mandrake, Ubuntu i Debian ... I uvijek mislim na Gentoo ...

    Čeka se tih 20 koraka!

    1.    chrisadr rekao je

      Hahaha, pa to je kao san zar ne? 🙂 Kažem da je vrijeme da se to ostvari 😉 pozdrav

  5.   Cool kao led rekao je

    Pozdrav ChrisADR, prvo želim da ti kažem da nisam dobro spavao od tvog prvog članka o Gentoo-u, a povezan je s ovim novim člankom, moji snovi zasnivaju se na sastavljanju Gentoo-a na mom starom Aspire One Netbook-u. U snu mi sistem govori da je moj netbook vrlo star pa ne prepoznaje hardver.
    S druge strane, nakon što sam vidio Gentoo i privukao mi pažnju, spomenuli su snagu koju nudi računaru (računaru). Od tog dana rekao sam si da ću ga jednog dana instalirati, prošlo je više od 10 godina, a nisam to učinio, možda zato što su mi rekli da je bilo vrlo teško instalirati, u to vrijeme sam bio gotovo anti-linux, pa su mi povećali pritužbu. Međutim, znatiželja se nastavila. Jednom sam bez ikakvog uspjeha pokušao instalirati BSD na svoj netbook i rečeno mi je da je Gentoo linux vrlo sličan BSD-u.
    Šta mi preporučujete da instaliram Gentoo na stari Aspire One sa starim Atom kompajlerom?

    i hvala vam puno na vašim člancima, čekam još

    1.    ChrisADR rekao je

      Pa, preporučujem ti ... UČINI! I konačno, ako na kraju ne uspije (u što puno sumnjam, jer je jezgra napravljena da podržava sve vrste hardvera), imat ćete izuzetno obogaćujuće iskustvo u svijetu Linuxa 🙂 sastavit ćete svoj kernel, montirat ćete svoj datotečni sistem od nule, napravit ćete konfiguracije koje malo tko radi u svom životu 🙂 dat će vam novu perspektivu svijeta hahaha Ako ne možete vidjeti moj Unix & StackExchange profil 🙂 moji odgovori pokrivaju širok spektar linuxa jer mi je znanje o Gentoo-u omogućilo da naučim mnoge stvari o svim Linuxima 😉 Ovdje vam ostavljam vezu svog profila

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

      Ne bojte se, i na kraju, ako sve bude u redu (sigurno će malo koštati) to će biti postignuće za vašu knjigu 😉 Pozdrav

  6.   Esteban rekao je

    Razmišljam i o migraciji na Gentoo, ali sumnjam. Prije svega, koliko su ažurni paketi za Arch? S druge strane, moj laptop ima ugrađenu bateriju i svi znamo šta neprekidna prekomjerna toplina čini baterijama. A pošto bih potrošio puno vremena na sastavljanje ...

    1.    ChrisADR rekao je

      Pa istina vam ne bi mogla sa sigurnošću reći koji je više Rolling Release 😛 ono što vam sa sigurnošću mogu reći je da Gentoo ima dvije grane: "stabilnu" i "nestabilnu", iako "nestabilna" mora imati većinu broj paketa na ivici tehnologije, imam mnogo poznatih programera koji ga svakodnevno koriste bez komplikacija. Mnoge od njih stvorene su za rad s git spremištima projekta, tako da više nema ničeg trenutnog. Personally Osobno koristim "stabilnu" granu, ali to je posebno zbog mog rada u zajednici kao koordinatora sigurnosti i kao član ispitnog tima (Arch Tester). Da za taj posao ne morate imati "stabilnu" verziju, zasigurno biste bili na ivici tehnologije s "nestabilnom".
      Ne znam odgovara li na vaše pitanje, ali barem se nadam da će vam privući pažnju dovoljno da ga isprobate 😛 Pozdrav

  7.   Free Quijote rekao je

    Istina je da mi tjerate da želim 😉
    Jako me zanima šta ste naveli o C vodičima, kao i Pythonu, i bio bih zahvalan ako imate skrivene dragulje za nespretne bake i djedove.
    Zbog toga što sam vam stavio štap i sa svim mojim poštovanjem, jer smatram da je sadržaj važniji od kontinenta, ali kako sam pomalo izbirljiv u jeziku komentirat ću sitnicu.
    Na početku kažete:
    "Kompilacija je postupak koji kompajler izvodi da bi koristio kod napisan na ljudskom jeziku i pretvorio ga u kôd koji mašina može razumjeti."
    Po mom mišljenju nije ispravno uključiti ono što je definirano u definiciji, jer za definiranje kompilacije uključujete pojam kompajler, pa bi nešto slično bilo ispravnije:
    Kompilacija je postupak kojim program dobiva iz tekstualne datoteke napisane na jeziku (C, C ++) datoteku koju izvršava računalo.

    1.    ChrisADR rekao je

      Vaš doprinos mi se čini ispravnim, prilagođavam mu se pokušavajući ga zadržati u svojoj biti i dodati te podatke 😉 hvala.

  8.   Double D rekao je

    Koristim ubuntu 16.04, da li mislite da bih se trebao prebaciti na gentoo? Koje bi bile prednosti gentoo-a u odnosu na ubuntu?

    1.    ChrisADR rekao je

      Pa, stvarno ne znam 😛 ovisi o tome što ćete raditi sa svojom opremom ili hardverom koji imate ili ako imate vremena (i želje) da naučite kako koristiti Gentoo. Rekao bih vam da, ako imate vremena i bude vam drago, MOŽETE NAPRIJED! i vidjet ćete da ćete puno naučiti usput 😉
      Saludos

  9.   fernan rekao je

    Zdravo
    Ako je istina da gentoo ima puno toga za pročitati, na primjer napravite emerge -pv paket i dobijete namjene u crvenoj, plavoj i zelenoj boji, plus moguće brave koje zahtijevaju promjene namjene, demaskiraju pakete, promjene utora se vrlo razlikuju od ono što su prikazali drugi upravitelji paketa.
    Pretpostavljam da će se gentoo morati ažurirati svaki dan, ako ga ostavite 1 mjesec, bit će potrebno smisliti kako ga popraviti.
    Pozdrav.

    1.    ChrisADR rekao je

      Da, hehe, u početku pomalo plima i oseka 🙂, ali s vremenom se upoznate i čak dođete do toga da razmišljate zašto ni u jednom drugom upravitelju paketa nemate toliko fleksibilnosti 🙂 u pogledu vremena, znam ljude koji već godinama rade isti server bez ažuriranja i ostaje potpuno čvrst kao i prvi dan, a za one koji su godinama (a ne mjeseci) postoji poseban odjeljak wikija koji opisuje moguća rješenja problema:

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

      A što se tiče ažuriranja, možda me direktno gledanje sigurnosnih problema natjeralo na novu perspektivu, ali svakodnevno ažuriranje je nešto što, bez obzira na distribuciju, obično ne zahtijeva više od dvije naredbe u svim distribucijama , a u gentoo-u, osim stvaranja dobre navike, izbjegavajte dugo čekanje kada se sakupe svi paketi.
      Saludos

  10.   fernan rekao je

    Zdravo
    U binarnim distribucijama koristim manjaro i prije nego što sam koristio ubuntu, lako ga je ažurirati, svakodnevno provjeravam ima li ažuriranja, to je prvo što pogledam, ali u manjaru ažuriranje mi nije stvorilo relevantne probleme, obično kažem pacmanu da da na sve i najviše na ažuriranje potpisa ili čak brisanje datoteke. Ali iz onoga što sam pročitao u gentoo-u, terminologiju je ponekad teško razumjeti šta portage kaže.
    Pozdrav.

    1.    ChrisADR rekao je

      Recite da svemu nikad nije dobro Fernane 🙂 ako ste postigli GNU / Linux, trebali biste to znati i razumjeti. Pa, ništa za vidjeti, to je jednostavno običaj, s vremenom shvatiš da je crveno ono što imaš, plavo ono što nemaš, zeleno ono što ćeš dodati i to je to :). Nikad ne moram ništa mijenjati kako bih ažurirao ako sam ispravno konfigurirao pokretanje, povremeno dodam ili uklonim USE zastavice, ali uobičajena stvar je da nakon čitanja liste dajem Y da, da znam šta se radi 🙂
      PS: pacman -Syy je isto što i emerge -sync
      Pacman -Suy je isto što i emerge -uD @world (-av je samo glagolan i pita vas prije nastavka, što je nepotrebno ako poznajete svoj tim i znate što radite, ali stavio sam ga da izbjegne probleme kasnije 😉) Ne vidim da je tako teško zapamtiti 🙂

      Saludos

  11.   Mauricio Lopez rekao je

    Izvrsni vaši članci, i prethodni i ovaj. Sumnjam i to je koliko brzine dobijate između Archa ili Manjara i Gentooa. Bez obzira na prilagodbu i učenje samo po sebi, vrijedi ih instalirati.
    Drugo pitanje koje imam je kako postupati s upravljačkim programima, to mi je zadalo probleme u Archu.

    1.    ChrisADR rekao je

      Dobar dan Mauricio,
      Pa, nikada nisam prestao uspoređivati ​​to dvoje, a u stvarnosti je vrlo dvosmisleno pitanje, ovisno o softveru koji koristite i opremi koju imate, ovo može varirati od malo ili nimalo do puno. Bar danas mi oba sistema rade prilično dobro u onome što trebam da ih koristim. (Imam glavni Gentoo i Arch koje povremeno koristim) Obično ga koristim u virtualizaciji i uređivanju programa (ali obično terminalom, tako da ne koristi puno memorije u IDE-u. Chrome me podržava na potpuno miran način više od 40 kartica (Pokušavao sam to s vremena na vrijeme, iako generalno imam maksimalno 5 otvorenih na duže vrijeme.
      Ako se jednog dana usudite probati, recite mi kako je prošlo 🙂

      Što se tiče upravljačkih programa, budući da kernelom upravljate po volji, obično je većina "uobičajenih" upravljačkih programa moguće instalirati ili barem njima upravljati. U slučaju visoko specijaliziranog hardvera (posebno malo kompatibilnog s Linuxom općenito), pretpostavljam da je to isti posao kao i u mnogim drugim distro-ovima, nemam puno specijaliziranog hardvera pa ga ne mogu puno komentirati 🙂

      Pozdrav i sreca

  12.   Jeanpier subero rekao je

    koje su vaše društvene mreže ChirsADR?