Gentoo: Чому я вирішив складати власні програми?

Ну, враховуючи чудовий прийом мого попереднього допису, я прийшов розповісти вам трохи більше про мій улюблений дистрибутив, Gentoo Linux. Обіцяю, що ця публікація буде мати розважальну інформацію, яка допоможе вам трохи зрозуміти міфи, що виникають перед страшними складання програмного забезпечення. Я також обіцяю, що ця інформація буде корисна для наступного посібника з встановлення Gentoo Linux за ~ 20 кроків (я ще не порахував їх правильно, але, думаю, їх ще менше). Без зайвих сумнівів, почнемо:

Що таке компіляція?

Це процес, який виконує програма (зазвичай її називають компілятором) для перетворення коду, написаного людською мовою (файли C, C ++ тощо), у код, який може зрозуміти машина (двійковий код). Давайте розглянемо наступний приклад:

Власний дизайн, Крістофер Діас Ріверос

Це наша маленька програма на С (якщо пізніше ви захочете отримати інші підручники з С, я також із задоволенням покажу вам те маленьке, чого я навчився за цей час). Тепер давайте подивимось, як виглядає результат після компіляції.

Власний дизайн, Chrirstopher Díaz Riveros

Прекрасно, чи не так? 🙂 Це те, що розуміє наша машина, щоб мати можливість писати те маленьке «Привіт» у наш термінал кожного разу, коли виконується програма.

Процес збірки:

Оскільки марно мати програму, яка друкує на екрані просте «Привіт», оскільки файлів .c та .h в проектах багато (як і у всіх мовах програмування). Для того, щоб полегшити процес компіляції, з’явилися нові інструменти, найбільш репрезентативним з усіх є команда зробити.

Make візьміть файл Makefile як вихідну точку і компілює те, що необхідно для створення остаточного виконуваного файлу, в деяких випадках для цього кроку потрібно виконати файл, який називається configure щоб мати можливість призначити кілька змінних, необхідних компілятору для компіляції (вибачте надмірність) корисного файлу.

Ось чому в багатьох підручниках ми знайдемо такі кроки:

Власний. Крістофер Діас Ріверос

Магія ./configure:

Щоб показати вам одну з найбільш прихованих і розважальних таємниць вихідного коду, ми перейдемо до вихідного коду програми, яку ми всі прекрасно знаємо, Суду. Спочатку звичайні кроки, але я зупинюсь на . / Налаштувати  щоб показати їм щось особливе.

Власний. Крістофер Діас Ріверос

Це поверне довгий список варіантів, серед яких я покажу вам той, який найбільше привертає мою увагу.

Власний. Крістофер Діас Ріверос

--with-insults... як випливає з назви, компілює sudo з зловживання 😀 - це цікава функція, яка дозволяє надіслати образу користувачеві щоразу, коли він помиляється у своєму паролі. Навіщо це? Ну, не так давно 😛, але чітко пояснює один момент. Існують тисячі варіантів, які не використовуються за замовчуванням у більшості дистрибутивів.

Як і ви, є багато інших, які можуть бути активними у розподілі двійкового коду, і які ви ніколи не будете використовувати, або будуть такі, які вам потрібні, але вони не йдуть із вашим офіційним розподіленим двійковим файлом, що означає, що кожне оновлення посібник.

Розпочніть цікаве на Gentoo:

Ми вже бачили, скільки параметрів ми можемо пропустити або перетягнути за допомогою попередньо скомпільованих програм. Але тепер зупинимося трохи на попередньо складеній проблемі.

Продуктивність:

Ви коли-небудь замислювались, чому нові машини виглядають лише трохи швидше порівняно з не дуже сучасними? Якщо процесор кращий, оперативної пам'яті більше, все краще, чому б не піти швидше? Відповідь проста ... складання.

Візьмемо дуже практичний приклад.

Мої програми зібрані з опцією --march=broadwell... це тому, що мій процесор широкопрофільний (intel i7). Мінус цього? жоден процесор до Broadwell не здатний розпізнати цей двійковий файл. На цьому етапі ви повинні це дуже чітко побачити, якщо я компілюю за допомогою –Березень  конкретно, все вищезазначене не буде працювати ... так як же двійкові пакети підтримують стільки типів обладнання? Легко, вони компілюються з мінімально можливим варіантом 🙂 це гарантує, що всі типи обладнання зможуть читати його (принаймні для сумісності).

Справжня проблема ... якщо ви використовуєте програми, скомпільовані для i3 ... Уся сила вашого i7 (або відповідних аналогій AMD) витрачається даремно !! Хіба це не сумно? 🙁

Гнучкість:

Оскільки розробники Gentoo дуже кмітливі, весь цей процес tar, ./configure, make тощо ... замінений силою Перенос. Усі ці цікаві налаштування перейменовані на прапори USE, тому, якщо ви хочете встановити певний параметр, вам не потрібно вводити вихідний код, просто встановіть змінну. Ось приклад того, як це зробити за допомогою sudo у portage. Спочатку ми побачимо, з якими опціями ми маємо поточну конфігурацію еквері.

Власний. Крістофер Діас Ріверос

Як бачимо, червоні опції активовані, сині ні, ну ... кожен може прочитати легенду 🙂

припустимо, я хочу додати опцію ...

Власний. Крістофер Діас Ріверос

Так само просто, як додавання рядка у файл із назвою Суду (назва є посилальною) в межах /etc/portage/package.use/. Завдяки цьому наступного разу, коли ми встановимо sudo, він скаже нам, що він буде перекомпільований з активованою опцією.

Власний. Крістофер Діас Ріверос

Якщо ми дамо, ТАК, все, що вам потрібно зробити, це зачекати трохи і вуаля 🙂 так просто, як це.

Заключні думки:

Що ж, ми вже переконалися, як легко працювати з додатковою функціональністю в Gentoo, що дозволяє додавати, видаляти або змінювати параметри улюблених програм. Ми також бачили, як продуктивність наших програм багато в чому залежить від змінних, з якими ми її компілюємо. Якщо у вас зовсім нова машина, Gentoo - ваш найкращий варіант. Якщо у вас дуже стара машина, Gentoo - це також ваш варіант (хоча компіляція займає певний час, остаточні програми стануть набагато легшими).

Незабаром я напишу свій посібник із встановлення Gentoo, як для любителів SystemD, так і для авантюристів OpenRC (я використовую systemd з GNOME). До речі, ще однією великою перевагою Gentoo є можливість вибрати все у вашій системі, і коли я кажу, все є ALL.

Якщо ви пропустили мій перший допис, ось посилання:

Gentoo Linux: Історія подорожі

З повагою,


24 коментарі, залиште свій

Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   Аукціонний зал - сказав він

    Чудово! Я чекатиму керівництва по встановленню Gentoo with Gnome. Можливо, мені рекомендується перейти на Gentoo, навіть якщо я все ще маю трохи старий ПК (intel core i5 3-го покоління). На здоров’я!

    1.    chrisadr - сказав він

      Незабаром Март Гано завоював мене, щоб поділитися іншими речами, тому я написав чергову публікацію, яка чекає на публікацію, але дуже скоро 🙂 Я обіцяю

  2.   нйорд - сказав він

    Думаю, я почну бачити тут багато публікацій про свій улюблений дистрибутив Linux o!!
    Я був у Gentoo з 2005 року, де використовував його для створення поштового сервера в університеті, де я навчався (і де я зараз працюю), і хоча я зазнав епізодичних атак дистрибуції, я завжди в кінцевому підсумку повертаюся зі своїм дорогим Гертрудісом (спочатку з Gnome2, потім Xfce і тепер openbox) , і, як ви коментуєте у своєму попередньому дописі, із збільшенням навичок та знань для його точної настройки 😉
    Я буду чекати ваших наступних внесків, привітань та подяк за те, що зробили мій день = D!

    1.    chrisadr - сказав він

      Що ж, виходить наступний 🙂 це все одно, що вести розважальну розмову на мою улюблену тему, наступна з’явиться незабаром, а наступна і наступна et Вітаю і дякую за коментар 🙂

  3.   Віктор - сказав він

    Я роками стрибав між дистрибутивами і думав про те, щоб скласти мій…. що керівництво буде кроком, якого я пропустив…. поки я буду розважати себе довідником. Дякую за все……

    1.    chrisadr - сказав він

      Ну, довідник - це рай для інформації, там є просто все everything Я можу внести лише свою піщинку 🙂, але дуже скоро виходить наступний пост, і незабаром з’явиться (я вже бачу, що це цілком очікувано) ~ 20 кроків керівництво по установці. Ура,

      1.    Віктор - сказав він

        Який джентльмен ви не дали мені часу передати з самого початку, який розповідає про різні мікропроцесори та керівництво тут !!!!! Цей мій кінець зіпсував ПЕРШИЙ! !!! Мільйони подяк !!!!

  4.   соймічний - сказав він

    Knoppix, Mandrake, Ubuntu та Debian ... І завжди думаючи про Gentoo ...

    Чекаємо цих 20 кроків!

    1.    chrisadr - сказав він

      Ха-ха-ха, ну це схоже на мрію, чи не так? 🙂 Я кажу, що пора це здійснити 😉 привітання

  5.   Прохолодний як лід - сказав він

    Привіт, ChrisADR, спочатку я хочу сказати вам, що я погано спав після вашої першої статті про Gentoo, і це пов’язано з цією новою статтею. Мої мрії засновані на складанні Gentoo на моєму старому Aspire One Netbook. Уві сні система говорить мені, що мій нетбук дуже старий, тому він не розпізнає обладнання.
    З іншого боку, коли я побачив Gentoo і він привернув мою увагу, вони згадали про потужність, яку він пропонував комп’ютеру (комп’ютеру). З того дня я сказав собі, що одного дня встановлю його, минуло більше 10 років, і я цього не зробив, можливо, тому, що вони сказали мені, що встановити його було дуже складно, на той момент я був майже анти-Linux, тому вони збільшили мою скаргу на нього. Однак цікавість продовжувалась. Одного разу я спробував встановити BSD на свій нетбук без жодного успіху, і мені сказали, що Gentoo - це Linux, дуже схожий на BSD.
    Що ви рекомендуєте мені встановити Gentoo на старий Aspire One зі старим компілятором Atom?

    і велике спасибі за ваші статті, я продовжую чекати ще

    1.    ChrisADR - сказав він

      Ну, я вам рекомендую ... ЗРОБІТЬ! І нарешті, якщо врешті-решт це не вдасться (у чому я багато сумніваюся, оскільки ядро ​​створено для підтримки всіх видів обладнання), ви мали б надзвичайно збагачуючий досвід у світі Linux 🙂 ви скомпілювали своє ядро, у вас буде змонтувавши свою файлову систему з нуля, ви зробите конфігурації, які мало хто робить у своєму житті 🙂 це дасть вам нову перспективу світу ха-ха-ха Якщо ви не можете побачити мій профіль Unix & StackExchange 🙂 мої відповіді охоплюють широкий спектр Linux там це тому, що знання Gentoo дозволило мені дізнатися багато речей про весь Linux 😉 Я залишаю вам посилання на свій профіль тут

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

      Не бійтеся, і врешті-решт, якщо все піде добре (це, безсумнівно, буде коштувати трохи), це буде досягненням для вашої книги 😉 Вітаю

  6.   Естебан - сказав він

    Я також думаю переїхати до Gentoo, але у мене є деякі сумніви. Перш за все, наскільки сучасні пакети для Arch? З іншого боку, мій ноутбук має вбудовану батарею, і всі ми знаємо, що постійне надмірне нагрівання робить батареї. А оскільки я витратив би багато часу на компіляцію ...

    1.    ChrisADR - сказав він

      Ну правда не можу сказати вам напевно, який з них є більш популярним випуском. Що я можу вам сказати з упевненістю, це те, що Gentoo має дві гілки: "стабільну" і "не стабільну", хоча "нестабільна" повинна мати Більшість пакетів на межі технологій, у мене є багато відомих розробників, які використовують його щодня без ускладнень. Багато з них створені для роботи з репозиторіями git проекту, тому немає нічого більш актуального 🙂 Я особисто використовую "стабільну" гілку, але це особливо через мою роботу в спільноті як координатора безпеки та як члена випробувальна команда (Arch Tester). Якби вам не потрібно було мати "стабільну" версію для цієї роботи, ви, безсумнівно, були б на передовій технологій з "не стабільною".
      Не знаю, чи відповідає воно на ваше запитання, але принаймні я сподіваюся, що воно приверне вашу увагу настільки, щоб спробувати 😛 З повагою

  7.   Вільний Кіхот - сказав він

    Правда в тому, що ти викликаєш у мене бажання 😉
    Мені дуже цікаво, що ви вказали про підручники C, а також Python, і я був би вдячний, якщо б у вас був якийсь прихований дорогоцінний камінь для незграбних бабусь і дідусів.
    За те, що я дав вам деякі зачепи і з усією повагою, оскільки я вважаю, що вміст важливіший за континент, але те, як я трохи метушись з мовою, я розповім вам дрібницю.
    Ви говорите на початку:
    "Компіляція - це процес, який виконує компілятор, використовуючи код, написаний людською мовою, і перетворюючи його в код, який може зрозуміти машина".
    На мій погляд, неправильно включати те, що визначено у визначенні, оскільки для визначення компіляції ви включаєте термін компілятор, тому щось подібне було б правильнішим:
    Компіляція - це процес, за допомогою якого програма отримує з текстового файлу, написаного мовою (C, C ++), виконуваний комп'ютером файл.

    1.    ChrisADR - сказав він

      Мені здається правильним ваш внесок, я пристосовую його, намагаючись зберегти його в суті та додати цю інформацію 😉 дякую.

  8.   Подвійний D - сказав він

    Я використовую ubuntu 16.04, чи вважаєте ви, що мені слід перейти на gentoo? Якими б були переваги gentoo перед ubuntu?

    1.    ChrisADR - сказав він

      Ну, я насправді не знаю 😛 це залежить від того, що ви збираєтеся робити зі своїм обладнанням, або обладнанням, яке у вас є, або якщо у вас є час (і бажання) навчитися користуватися Gentoo. Я б сказав вам, що якщо у вас є час, і вам захочеться, ви можете ПЕРЕДАТИ! і ти побачиш, що багато чого навчишся в дорозі 😉
      привіт

  9.   фернан - сказав він

    Привіт
    Якщо правда полягає в тому, що gentoo потрібно багато чого прочитати, наприклад, ви робите пакет emerge -pv, і ви отримуєте використання в червоному, синьому та зеленому кольорах, а також можливі блокування, які вимагають зміни використання, демаскування пакетів, зміни слотів сильно відрізняються від те, що відображається іншими менеджерами пакетів.
    Я припускаю, що gentoo доведеться оновлювати щодня, якщо ви залишите його на 1 місяць, настав час з’ясувати, як це виправити.
    Привіт.

    1.    ChrisADR - сказав він

      Так, хе-хе, спочатку це трохи припливи 🙂 але з часом ти знайомишся і навіть приходитьш до думки, чому в жодному іншому менеджері пакетів ти не маєш такої гнучкості 🙂 з точки зору часу, я знаю людей, які мають той самий сервер працює протягом багатьох років без оновлення, і він залишається абсолютно твердим як перший день, а для тих, хто був там роками (а не місяцями), існує спеціальний розділ вікі, що описує можливі шляхи вирішення проблеми:

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

      І що стосується оновлень, можливо, безпосереднє бачення проблем із безпекою змусило мене поглянути на новий погляд, але оновлення щодня - це те, що, незалежно від розподілу, слід робити, як правило, не потрібно більше двох команд у всіх дистрибутивах та в gentoo на додаток до створення доброї звички, уникайте довгих очікувань, коли накопичуються всі пакунки.
      привіт

  10.   фернан - сказав він

    Привіт
    У двійкових дистрибутивах я використовую манджаро, і до того, як я використовував ubuntu, його легко оновлювати, я щодня перевіряю, чи є оновлення, це перше, на що я дивлюсь, але в манджаро оновлення не дало мені відповідних проблем, я зазвичай скажіть pacman, що так усім, і щонайбільше потрібно оновити підписи або навіть видалити файл. Але з того, що я читав у gentoo, термінологію часом важко зрозуміти, про що говорить portage.
    Привіт.

    1.    ChrisADR - сказав він

      Скажіть, так, ніколи не буває нічого доброго, фернан 🙂 якщо ви досягли GNU / Linux, ви повинні це знати і розуміти. Ну, нічого не можна побачити, це просто звичай, з часом ти розумієш, що червоний - це те, що ти маєш, синій, чого ти не маєш, зелений, що ти збираєшся додати і все :) Мені ніколи не потрібно нічого міняти для оновлення, якщо я правильно налаштував старт, час від часу додаю або видаляю прапори USE, але загальна справа - дати Y після прочитання списку, щоб знати, що робиться 🙂
      PS: pacman -Syy те саме, що emerge -sync
      Pacman -Suy - це те саме, що emerge -uD @world (-av має бути лише багатослівним і запитує вас перед тим, як продовжувати, що непотрібно, якщо ви знаєте свою команду і знаєте, що робите, але я ставлю це, щоб уникнути проблем пізніше 😉) Я не бачу, що це так важко запам’ятати 🙂

      привіт

  11.   Маурісіо Лопес - сказав він

    Відмінні ваші статті, як попередня, так і ця. Я сумніваюся, і це те, скільки швидкості ви набираєте між Арчем чи Манджаро та Gentoo. Незалежно від налаштування та навчання як такої, їх варто встановити.
    Ще одне питання, яке я маю, - як поводитися з драйверами, це те, що викликало у мене проблеми в Arch.

    1.    ChrisADR - сказав він

      Привіт Маурісіо,
      Ну, я ніколи не зупинявся на порівнянні між ними, і насправді це дуже неоднозначне питання, залежно від програмного забезпечення, яке ви використовуєте, та обладнання, яке у вас є, це може коливатися від незначного чи нічого до великого. Принаймні на сьогодні обидві системи працюють для мене досить добре в тому, що мені потрібно для їх використання. (У мене є основний Gentoo та Arch, які я використовую час від часу) Зазвичай я використовую їх для віртуалізації та редагування програм (але зазвичай за допомогою терміналу, тому він не використовує багато пам'яті в IDE. Chrome підтримує мене абсолютно спокійно більше 40 вкладок (я пробував це раз за разом, хоча, як правило, у мене відкрито максимум 5 протягом тривалого періоду.
      Якщо одного разу ти наважишся спробувати, скажи мені, як все пройшло 🙂

      Що стосується драйверів, оскільки ви керуєте ядром за бажанням, зазвичай більшість "загальних" драйверів можна встановити або, принаймні, ними можна керувати. У випадку вузькоспеціалізованого обладнання (особливо малосумісного з Linux взагалі), я вважаю, що це та ж робота, що і в багатьох інших дистрибутивах, у мене не так багато спеціалізованого обладнання, тому я не можу багато коментувати його 🙂

      Привіт і удача

  12.   Жанп'є суберо - сказав він

    які ваші соціальні мережі ChirsADR?