Гентоо: Зашто сам изабрао да компајлирам сопствене програме?

Па, с обзиром на сјајан пријем мог претходног поста, дошао сам да вам кажем мало више о својој омиљеној дистрибуцији, Гентоо Линук-у. Обећавам да ће овај пост садржавати забавне информације које ће вам помоћи да разумете мало о митовима који се појављују пред страшним компилација софтвера. Такође обећавам да ће ове информације бити корисне за следећи водич за инсталацију Гентоо Линука у ~ 20 корака (још их нисам добро избројао, али мислим да су још мање). Без даљег хватања, почнимо:

Шта је компајлирање?

То је поступак који спроводи програм (који се обично назива компајлером) за претварање кода написаног на људском језику (датотеке Ц, Ц ++, итд.) У код који машина може разумети (бинарни код). Погледајмо следећи пример:

Властити дизајн, Цхристопхер Диаз Риверос

Ово је наш мали Ц програм (ако касније желите и друге Ц водиче, такође ћу вам радо показати шта сам мало научио у овом тренутку). Сада да видимо како изгледа излаз након компајлирања.

Сопствени дизајн, Цхрирстопхер Диаз Риверос

Дивно, зар не? Оур То је оно што наша машина схвата да може да напише оно мало „Здраво“ у наш терминал сваки пут када се програм изврши.

Процес израде:

Како је бескорисно имати програм који на екрану исписује једноставно „Здраво“, јер .ц и .х датотеке обилују пројектима (као у свим програмским језицима). Да би процес компилације био мало лакши, појавили су се нови алати, најрепрезентативнија од свих је команда make (правити).

Make узми датотеку Makefile као почетну тачку и компајлира оно што је неопходно за стварање коначне извршне датотеке, у неким случајевима овај корак захтева извршавање датотеке која се зове configure да би могао да додели неколико променљивих неопходних компајлеру да састави (опрости сувишност) корисну датотеку.

Због тога ћемо у многим упутствима наћи следеће кораке:

Сопствени. Цхристопхер Диаз Риверос

Магија ./цонфигуре:

Да бисмо вам показали једну од најскривенијих и најзабавнијих тајни изворног кода, отићи ћемо до изворног кода програма који сви савршено знамо, судо. Прво уобичајени кораци, али зауставићу се на томе / Цонфигуре.  да им покаже нешто посебно.

Сопствени. Цхристопхер Диаз Риверос

Ово ће вам вратити дугачку листу опција, међу којима ћу вам показати ону која највише привлачи моју пажњу.

Сопствени. Цхристопхер Диаз Риверос

--with-insults... као што назив говори, компајлира судо са злоупотреба 😀 је забавна функција која вам омогућава да упутите увреду кориснику сваки пут када погреши у лозинци. За шта је то? Па, не тако давно 😛, али један став је јасан. Постоје хиљаде опција које у већини дистрибуција не долазе подразумевано.

Као и ви, постоји много других који могу бити активни у дистрибуцији бинарног кода и које никада нећете користити, или ће бити неких који су вам потребни, али они неће бити испоручени са званичним дистрибуираним бинарним кодом, што подразумева да ће свако ажурирање бити ручно.

Започните забаву на Гентоо-у:

Већ смо видели колико нам опција може пропустити или повући са унапред компајлираним програмима. Али сада ћемо се фокусирати мало на претходно састављени проблем.

Перформансе:

Да ли сте се икада запитали зашто нове машине изгледају само мало брже у поређењу са не тако модерним? Ако је процесор бољи, има више РАМ-а, све је боље, зашто не ићи брже? Одговор је једноставан ... компилација.

Узмимо врло практичан пример.

Моји програми су компајлирани са опцијом --march=broadwell... то је зато што је мој процесор броадвелл (интел и7). Лоша страна овог? ниједан процесор пре Броадвелла није у стању да препозна ову бинарну датотеку. У овом тренутку то бисте требали видети врло јасно, ако компајлирам са –Март  конкретно, све горе наведено неће радити ... па како бинарни пакети подржавају толико врста хардвера? Лако се компајлирају са најмање могућом опцијом 🙂 то гарантује да ће све врсте хардвера моћи да га прочитају (бар ради компатибилности).

Прави проблем ... ако користите програме који су компајлирани за и3 ... Потрошена је сва снага вашег и7 (или његових одговарајућих АМД аналогија) !! Зар то није тужно? 🙁

Флексибилност:

Будући да су програмери Гентоо врло паметни, читав овај процес тар, ./цонфигуре, маке, итд ... замењен је снагом Портаге. Сва ова знатижељна подешавања су преименована у УСЕ заставе, па ако желите одређено подешавање, не морате да уносите изворни код, само подесите променљиву. Ево примера како се то ради са судо у портаге. Прво ћемо видети које опције имамо у нашој тренутној конфигурацији екуери.

Сопствени. Цхристопхер Диаз Риверос

Као што видимо, црвене опције су активиране, плаве нису, па ... сви могу прочитати легенду 🙂

рецимо да желим да додам опцију ...

Сопствени. Цхристопхер Диаз Риверос

Једноставно као додавање реда у датотеку која се зове судо (име је референцијално) унутар /etc/portage/package.use/. Овим ће нам следећи пут када инсталирамо судо рећи да ће се прекомпајлирати са активираном опцијом.

Сопствени. Цхристопхер Диаз Риверос

Ако дамо, ДА, све што треба да урадите је да сачекате мало и воила 🙂 једноставно као ово.

Последње мисли:

Па, већ смо видели како је лако руковати додатним функцијама у Гентоо-у, што нам омогућава додавање, уклањање или мењање опција у оквиру наших омиљених програма. Такође смо видели како перформансе наших програма увелико зависе од променљивих са којима их компајлирамо. Ако имате сасвим нову машину, Гентоо је ваша најбоља опција. Ако имате веома стару машину, Гентоо је такође ваша опција (иако је потребно неко време да се компајлира, коначни програми ће бити много лакши).

Ускоро ћу написати свој Гентоо водич за инсталацију, како за љубитеље СистемД-а, тако и за ОпенРЦ авантуристе (користим системд са ГНОМЕ-ом). Иначе, још једна од великих предности Гентоо-а је могућност изабрати све у вашем систему и када кажем да је све СВЕ.

Ако сте пропустили мој први пост, ево линка:

Гентоо Линук: Прича о путовању

Поздрав,


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   Март дијо

    Сјајно! Чекаћу водич за инсталацију Гентоо-а са Гномеом. Можда ме охрабрује да мигрирам на Гентоо чак иако имам још увек мало стари рачунар (интел цоре и5 3. генерације). Живели!

    1.    цхрисадр дијо

      Убрзо ме Март 😉 придобио да поделим још ствари, па сам написао још један пост који чека на објављивање, али врло брзо 🙂 Обећавам

  2.   њорд дијо

    Мислим да ћу овде почети да видим пуно постова о својој омиљеној линук дистрибуцији o!!
    У Гентоо-у сам од 2005. године, где сам га користио за постављање поштанског сервера на универзитету на којем сам студирао (и где сада радим), и иако сам претрпео спорадичне нападе дистрохоппинга, на крају се увек вратим са својим драгим Гертроодисом ( прво са Гноме2, затим Ксфце и сада опенбок), и док коментаришете у свом претходном посту, са све већим вештинама и знањем како бисте га фино подесили 😉
    Чекаћу ваше следеће доприносе, поздраве и хвала што сте ми улепшали дан = Д!

    1.    цхрисадр дијо

      Па, следећи излази 🙂 то је као да водите забаван разговор о мојој омиљеној теми, следећи долази ускоро, а следећи и следећи 😛 Поздрав и пуно хвала на коментару 🙂

  3.   Победник дијо

    Годинама сам скакао између дистроа и размишљао о томе да саставим своје ... тај водич ће бити корак који ми је недостајао ... док ћу се позабавити приручником. Хвала на свему……

    1.    цхрисадр дијо

      Па, приручник је рај за информације, једноставно постоји све 🙂 могу да дам само своје зрнце песка 🙂 али врло брзо излази следећи пост, а ускоро и онај (већ видим да је сасвим је очекивано) ~ 20 корака водич за инсталацију. Живели,

      1.    Победник дијо

        Какав господин ми од почетка нисте дали времена да прођем који говори о различитим микропроцесорима и водич је овде !!!!! Овај мој крај је забрљао ПРВИ! !!! Милиони хвала !!!!

  4.   соимичан дијо

    Кноппик, Мандраке, Убунту и Дебиан ... И увек мислим на Гентоо ...

    Чека се тих 20 корака!

    1.    цхрисадр дијо

      Хахаха, па то је као сан зар не? 🙂 Кажем да је време да се то оствари 😉 поздрав

  5.   Цоол Ас Ице дијо

    Поздрав ЦхрисАДР, прво желим да вам кажем да нисам добро спавао од вашег првог чланка о Гентоо-у, а повезан је са овим новим чланком, моји снови се заснивају на састављању Гентоо-а на мом старом Аспире Оне Нетбоок-у. У сну ми систем говори да је мој нетбоок веома стар па не препознаје хардвер.
    С друге стране, када сам једном видео Гентоо-а и привукао ми пажњу, поменули су снагу коју нуди рачунару (рачунару). Од тог дана рекао сам себи да ћу га једног дана инсталирати, прошло је више од 10 година, а нисам то учинио, можда зато што су ми рекли да је било врло тешко инсталирати, у то време сам био скоро анти-линук, па су повећали моју жалбу према њему. Међутим, радозналост се наставила. Једном сам без икаквог успеха покушао да инсталирам БСД на свој нетбоок и речено ми је да је Гентоо линук који личи на БСД.
    Шта ми препоручујете да инсталирам Гентоо на стари Аспире Оне са старим Атом компајлером?

    и хвала вам пуно на вашим чланцима, чекам још

    1.    ЦхрисАДР дијо

      Па, препоручујем ти ... УЧИНИ! И на крају, ако на крају не успе (у шта сумњам много, јер је језгро направљено да подржава све врсте хардвера), имали бисте изузетно обогаћујуће искуство у свету Линука 🙂 саставићете језгро, имат ћете монтирали свој систем датотека од нуле, направили сте конфигурације које мало ко ради у свом животу 🙂 даће вам нову перспективу света хахаха Ако не видите мој Уник & СтацкЕкцханге профил 🙂 моји одговори покривају широк спектар линука тамо је зато што ми је познавање Гентоо-а омогућило да научим многе ствари о читавом Линук-у. 😉 Остављам вам везу свог профила овде

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

      Не бојте се, и на крају, ако све буде у реду (сигурно ће коштати мало), то ће бити постигнуће за вашу књигу 😉 Поздрав

  6.   Естебан дијо

    Такође размишљам о миграцији на Гентоо, али имам неке сумње. Пре свега, колико су ажурни пакети за Арцх? С друге стране, мој лаптоп има уграђену батерију и сви знамо шта непрекидна прекомерна топлота чини батеријама. А пошто бих потрошио пуно времена на састављање ...

    1.    ЦхрисАДР дијо

      Па истина вам не би могла са сигурношћу рећи који је више Роллинг Релеасе 😛 оно што вам са сигурношћу могу рећи је да Гентоо има две гране: „стабилну“ и „нестабилну“, мада „нестабилна“ мора имати већину пакета на ивици технологије, имам много познатих програмера који га свакодневно користе без компликација. Многи од њих су створени за рад са гит спремиштима пројекта, тако да више нема ничег актуелног. 🙂 Ја лично користим „стабилну“ грану, али то је посебно због мог рада у заједници као координатора за безбедност и као члана тест тим (Арцх Тестер). Да за тај посао не морате да имате „стабилну“ верзију, сигурно бисте били на ивици технологије са „не стабилном“.
      Не знам да ли одговара на ваше питање, али барем се надам да ће вам привући пажњу довољно да пробате 😛 Поздрав

  7.   Фрее Куијоте дијо

    Истина је да ми терате да пожелим 😉
    Веома ме занима шта сте навели о Ц водичима, као и Питхону, и био бих вам захвалан ако имате скривене драгуље за неспретне баке и деке.
    Због тога што сам вам дао неке замке и са свим мојим поштовањем, јер сматрам да је садржај важнији од континента, али како сам мало превртљив са језиком, рећи ћу вам малу ствар.
    Кажете на почетку:
    „Компилација је процес који компајлер изводи да би користио код написан на људском језику и претворио га у код који машина може да разуме.“
    По мом мишљењу није коректно укључити оно што је дефинисано у дефиницију, јер за дефинисање компилације укључујете термин компајлер, па би нешто слично било тачније:
    Компилација је поступак којим програм из рачунарске датотеке написане на језику (Ц, Ц ++) добија извршну датотеку.

    1.    ЦхрисАДР дијо

      Ваш допринос ми се чини тачним, прилагођавам му се да бих га задржао у својој суштини и додао те информације информатион хвала.

  8.   Доубле Д. дијо

    Користим убунту 16.04, да ли мислите да би требало да пређем на гентоо? Које би биле предности гентоо-а у односу на убунту?

    1.    ЦхрисАДР дијо

      Па, стварно не знам 😛 зависи од тога шта ћете радити са својом опремом или хардвером који имате или ако имате времена (и жеље) да научите како да користите Гентоо. Рекао бих вам да ако имате времена и ако вам се прохте, можете НАПРЕД! и видећете да ћете успут много научити 😉
      поздрави

  9.   фернан дијо

    Здраво
    Ако је истина да гентоо има много тога да прочита, на пример, направите емерге -пв пакет и добијете употребу у црвеној, плавој и зеленој боји, плус могуће браве које захтевају промене употребе, раскринкају пакете, промене слота се веома разликују од онога приказали други менаџери пакета.
    Претпостављам да ће гентоо морати да се ажурира сваки дан, ако га оставите 1 месец, биће време да смислите како да га поправите.
    Поздрав.

    1.    ЦхрисАДР дијо

      Да, хехе, у почетку мало плима, али с временом се упознате и чак дођете дотле да размишљате зашто ни у једном другом менаџеру пакета немате толико флексибилности 🙂 у погледу времена, знам људе који имају исти сервер ради годинама без ажурирања и остаје потпуно чврст као првог дана, а за оне који су годинама (а не месеци) постоји посебан одељак вики-а који описује могућа решења проблема:

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

      А што се тиче ажурирања, можда ме је директно гледање безбедносних проблема натерало на нову перспективу, али свакодневно ажурирање је нешто што, без обзира на дистрибуцију, обично не захтева више од две команде у свим дистрибуцијама , а у гентоо-у поред стварања добре навике, избегавајте дуго чекање када се сакупе сви пакети.
      поздрави

  10.   фернан дијо

    Здраво
    У бинарним дистро-овима користим мањаро и пре него што сам користио убунту, лако га је ажурирати, свакодневно проверавам да ли постоје исправке, то је прво што погледам, али у мањаро-у ажурирање ми није донело релевантне проблеме, обично кажем пацман-у да на све и највише на ажурирање потписа или чак брисање датотеке. Али из онога што сам прочитао у гентоо-у, терминологију је понекад тешко разумети шта каже портаге.
    Поздрав.

    1.    ЦхрисАДР дијо

      Реците да свему никад није добро Фернане 🙂 ако сте постигли ГНУ / Линук, требали бисте то знати и разумјети. Па, ништа за видети, то је једноставно обичај, с временом схватиш да је црвено оно што имаш, плаво оно што немаш, зелено оно што ћеш додати и то је то :). Никада не морам ништа да мењам да бих ажурирао ако сам исправно конфигурисао покретање, повремено додам или уклоним УСЕ заставице, али уобичајена ствар је да након читања листе дам И да, да знам шта се ради 🙂
      ПС: пацман -Сии је исто што и емерге -синц
      Пацман -Суи је исто што и емерге -уД @ворлд (-ав је само глаголан и пита вас пре него што наставите, што је непотребно ако познајете свој тим и знате шта радите, али ставио сам га да избегнете проблеми касније 😉) Не видим да је тако тешко памтити 🙂

      поздрави

  11.   Маурицио Лопез дијо

    Одлични ваши чланци, како претходни, тако и овај. Сумњам и то је колико брзине добијате између Арцх-а или Мањара-а и Гентоо-а. Без обзира на прилагођавање и учење само по себи, чине га вредним инсталирања.
    Друго питање које имам је како да поступим са управљачким програмима, то је нешто што ми је задало проблеме у Арцх-у.

    1.    ЦхрисАДР дијо

      Здраво Маурицио,
      Па, никада нисам престао да меламим између њих двоје, а у стварности је врло двосмислено питање, у зависности од софтвера који користите и опреме коју имате, ово може варирати од мало или ништа до пуно. Бар данас ми оба система раде прилично добро у ономе што треба да их користим. (Имам главни Гентоо и Арцх које повремено користим) Обично га користим у виртуелизацији и уређивању програма (али обично терминалом, тако да не користи пуно меморије у ИДЕ-у. Цхроме ме подржава на потпуно миран начин више од 40 картица (с времена на време сам то пробао, мада генерално имам само 5 отворених на дужи период.
      Ако се једног дана усудите да покушате, реците ми како је прошло 🙂

      Што се тиче управљачких програма, с обзиром да управљате језгром по вољи, обично је већина "уобичајених" управљачких програма могуће инсталирати или барем њима управљати. У случају високо специјализованог хардвера (посебно мало компатибилног са Линуком уопште), претпостављам да је то исти посао као у многим другим дистро-овима, немам много специјализованог хардвера па не могу пуно да га коментаришем 🙂

      Поздрав и срећа

  12.   Јеанпиер суберо дијо

    које су ваше друштвене мреже ЦхирсАДР?