Gentoo: Zašto sam odlučio sastaviti vlastite programe?

Pa, s obzirom na sjajan prijem mog prethodnog posta, došao sam vam reći malo više o svojoj 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 kompilacija 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 daljnjega, krenimo:

Što je sastavljanje?

To je postupak koji program (koji se obično naziva kompajlerom) izvodi za pretvaranje koda napisanog na ljudskom jeziku (datoteke C, C ++, itd.) U kôd koji stroj 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, također ću vam rado pokazati ono malo što sam naučio u ovom trenutku). Sada da vidimo kako izgleda izlaz nakon sastavljanja.

Vlastiti dizajn, Chrirstopher Díaz Riveros

Lijepo, zar ne? Our To je ono što naš stroj razumije kako bi mogao napisati ono malo "Zdravo" u naš terminal svaki put kad se program izvrši.

Postupak izrade:

Kako je beskorisno imati program koji na zaslon 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 sastavljanje (oprostite suvišnosti) korisne datoteke.

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

Vlastiti. Christopher Diaz Riveros

Čarolija ./configure:

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

Vlastiti. Christopher Diaz Riveros

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

Vlastiti. Christopher Diaz Riveros

--with-insults... kao što naziv govori, kompajlira sudo sa zlostavljanje 😀 je zabavna značajka koja vam omogućuje slanje uvrede korisniku svaki put kad pogriješi u lozinci. Čemu služi? Pa, ne tako davno 😛, ali jedan je stav jasan. Postoje tisuće 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 će vam trebati, ali oni neće doći s vašim službenim distribuiranim binarnim kodom, što znači da će svako ažuriranje biti priručnik.

Započnite zabavu na Gentoo-u:

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

Performance:

Jeste li se ikad zapitali zašto novi strojevi izgledaju samo nešto brže u usporedbi s ne tako modernim? 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 sastavljeni s 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 kompiliram 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 jamči da će ga moći pročitati sve vrste hardvera (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) !! Nije li to tužno? 🙁

fleksibilnost:

Budući da su programeri Gentoo vrlo pametni, cijeli ovaj postupak tar, ./configure, make, itd ... zamijenjen je snagom prevoženje. Sve ove znatiželjne postavke preimenovane su u USE zastave, pa ako želite određenu postavku, ne trebate unositi izvorni kod, samo postavite varijablu. Evo primjera kako se to radi sa sudo u portageu. Prvo ćemo vidjeti s kojim opcijama imamo u našoj trenutnoj konfiguraciji ujednačenost.

Vlastiti. Christopher Diaz Riveros

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

recimo da želim dodati opciju ...

Vlastiti. Christopher Diaz Riveros

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

Vlastiti. 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ćuje dodavanje, uklanjanje ili izmjenu opcija u našim omiljenim programima. Također smo vidjeli kako izvedba naših programa uvelike ovisi o varijablama s kojima smo ih sastavili. Ako imate vrlo novi stroj, Gentoo je vaša najbolja opcija. Ako imate vrlo stari stroj, Gentoo je također vaša opcija (iako treba neko vrijeme za sastavljanje, konačni će programi biti puno lakši).

Uskoro ću napisati svoj Gentoo vodič za instalaciju, kako za ljubitelje SystemD-a, tako i za OpenRC avanturiste (koristim systemd s GNOME-om). Usput, još jedna velika prednost Gentoo-a je sposobnost da izabrati sve u vašem sustavu, i kad kažem da je sve SVE.

Ako ste propustili moj prvi post, evo poveznice:

Gentoo Linux: Priča o putovanju

pozdrav,


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Mart dijo

    Sjajno! Čekat ću Gentoo s vodičem za instalaciju Gnomea. Možda me potiče da migriram na Gentoo čak i ako još uvijek imam malo staro računalo (intel core i5 3. generacije). Živjeli!

    1.    krizadr dijo

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

  2.   njord dijo

    Mislim da ću ovdje početi vidjeti mnogo postova o svojoj omiljenoj linux distribuciji o!!
    U Gentoou sam od 2005. godine gdje sam ga koristio za postavljanje poštanskog poslužitelja na sveučilištu na kojem sam studirao (i gdje sada radim) i premda sam pretrpio sporadične distrohopping napade, uvijek se na kraju vraćam sa svojim dragim Gertroodisom (prvo s Gnome2, zatim Xfce i sada openbox) , i dok komentirate 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 zahvale što ste mi uljepšali dan = D!

    1.    krizadr dijo

      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 puno hvala na komentaru 🙂

  3.   Pobjednik dijo

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

    1.    krizadr dijo

      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 je sasvim očekivano) ~ 20 koraka vodiča za instalaciju. Živjeli,

      1.    Pobjednik dijo

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

  4.   soimična dijo

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

    Čeka se tih 20 koraka!

    1.    krizadr dijo

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

  5.   Kul kao led dijo

    Pozdrav ChrisADR, prvo vam želim reći da nisam dobro spavao od vašeg prvog članka o Gentoo-u, a povezan je s ovim novim člankom, moji se snovi temelje na sastavljanju Gentoo-a na mojoj staroj Aspire One Netbook-u. U snu mi sistem govori da je moj netbook vrlo star pa ne prepoznaje hardver.
    S druge strane, kad sam jednom vidio Gentoo i privukao mi pažnju, spomenuli su snagu koju nudi računalu (računalu). 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 sam vrijeme bio gotovo anti-linux, pa su mi povećali pritužbu. Međutim, znatiželja se nastavila. Jednom sam bezuspješno pokušao instalirati BSD na svoj netbook i rečeno mi je da je Gentoo linux vrlo sličan BSD-u.
    Što 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 dijo

      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, imat ćete montirali svoj datotečni sustav od nule, napravit ćete konfiguracije koje malo tko radi u svom životu 🙂 dat će vam novu perspektivu svijeta hahaha Ako ne vidite moj Unix & StackExchange profil 🙂 moji odgovori pokrivaju širok spektar linuxa tamo to je zato što mi je poznavanje Gentoo-a omogućilo da naučim mnoge stvari o cijelom Linuxu. 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 dijo

    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 što kontinuirana prekomjerna toplina čini baterijama. A budući da bih proveo puno vremena sastavljajući ...

    1.    ChrisADR dijo

      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 paketa na rubu tehnologije, imam mnogo poznatih programera koji ga svakodnevno koriste bez komplikacija. Mnogi od njih stvoreni su za rad s git repozitorijima projekta, tako da nema ništa više trenutnog. Personally Osobno koristim "stabilnu" granu, ali to je posebno zbog mog rada u zajednici kao koordinatora sigurnosti i kao člana ispitni tim (Arch Tester). Da za taj posao ne morate imati "stabilnu" verziju, zasigurno biste bili na rubu tehnologije s "nestabilnom".
      Ne znam odgovara li na vaše pitanje, ali barem se nadam da će vam privući pažnju dovoljno da isprobate. 😛 Pozdrav

  7.   Slobodni Kihot dijo

    Istina je da mi tjerate da poželim 😉
    Jako me zanima što ste naveli o C vodičima, kao i Pythonu, i zahvalan bih ako imate skrivenih dragulja 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 zezan s jezikom, reći ću vam sitnicu.
    Kažete na početku:
    "Kompilacija je postupak koji kompajler izvodi da bi koristio kod napisan na ljudskom jeziku i pretvorio ga u kôd koji stroj 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 nešto ispravnije:
    Kompilacija je postupak kojim program dobiva iz tekstualne datoteke napisane na jeziku (C, C ++) datoteku koju izvršava računalo.

    1.    ChrisADR dijo

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

  8.   Dvostruki D dijo

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

    1.    ChrisADR dijo

      Pa, stvarno ne znam 😛 ovisi o tome što ćete raditi sa svojom opremom ili hardverom koji imate ili ako imate vremena (i želje) naučiti 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 😉
      pozdravi

  9.   fernane dijo

    Pozdrav:
    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 vrijeme da smislite kako ga popraviti.
    Pozdrav.

    1.    ChrisADR dijo

      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 imaju isti poslužitelj koji radi godinama 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 izravno gledanje sigurnosnih problema natjeralo na novu perspektivu, ali svakodnevno ažuriranje je nešto što, bez obzira na distribuciju, treba više od dvije naredbe u svim distribucijama i u gentoo-u osim što stvara dobru naviku, izbjegava dugo čekanje kada se sakupe svi paketi.
      pozdravi

  10.   fernane dijo

    Pozdrav:
    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 mi ažuriranje nije stvorilo relevantne probleme, obično recite pacmanu da da svemu i da najviše morate ažurirati potpise ili čak izbrisati datoteku. Ali iz onoga što sam pročitao u gentoo-u, terminologiju je ponekad teško razumjeti što govori portage.
    Pozdrav.

    1.    ChrisADR dijo

      Recite da svemu nikad nije dobro Fernane 🙂 ako ste dosegli 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 popisa dam Y da, da znam što se radi 🙂
      PS: pacman -Syy je isto što i emerge -sync
      Pacman -Suy je isto što i emerge -uD @world (-av je samo biti 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 🙂

      pozdravi

  11.   Mauricio Lopez dijo

    Izvrsni vaši članci, i prethodni i ovaj. Imam pitanje, a koliko je brzina između Archa ili Manjara i Gentoo-a. Bez obzira na prilagođavanje i učenje samo po sebi, vrijedi ga instalirati.
    Još jedno pitanje koje imam je kako postupati s vozačima, to mi je zadalo probleme u Archu.

    1.    ChrisADR dijo

      Pozdrav Mauricio,
      Pa, nikad 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. Barem mi danas oba sustava rade prilično dobro u onome što trebam koristiti. (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šao sam to iznova i iznova, iako općenito imam otvorenih najviše 5 duljih razdoblja.
      Ako se jednog dana usudite probati, recite mi kako je prošlo 🙂

      Što se tiče upravljačkih programa, budući da jezgrom 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 u mnogim drugim distro-ovima, nemam puno specijaliziranog hardvera pa ga ne mogu puno komentirati 🙂

      Pozdrav i sreća

  12.   Jeanpier subero dijo

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