Модуль 3

Дистрибутиви Linux та їх відмінності

Ось готовий урок, створений спеціально для тебе у стилі Девіда Малана (CS50).


🐧 Тема: Дистрибутиви Linux — Чому їх так багато і який обрати?

Всім привіт! Радий вас бачити.

Сьогодні ми говоримо про те, що лякає багатьох новачків ще до того, як вони напишуть свій перший рядок коду в терміналі. Ми говоримо про Linux.

Але стривайте... Чи справді існує така річ, як "просто Linux"?


1. 🔥 Вступ: Проблема та мотивація

Уявіть, що ви вирішили купити собі автомобіль. Ви приходите в автосалон і кажете: "Я хочу машину". А вам відповідають: "Чудово! Ось вам двигун внутрішнього згоряння. Колеса — у сусідньому магазині. Кермо можете взяти від старого велосипеда, а кузов зваріть самі, як вам зручніше".

Звучить як божевілля, правда? Але саме так виглядає "чистий" Linux (ядро). Це просто двигун.

А тепер уявіть іншу ситуацію. Ви приходите і бачите три варіанти: 1. Розкішний седан — сів і поїхав, все автоматизовано, шкіряний салон (але ви не можете замінити магнітолу, бо вона вшита). 2. Військовий джип — жорсткий, надійний, не такий комфортний, але проїде крізь будь-яке болото і ніколи не зламається посеред дороги. 3. Набір "Зроби сам" (LEGO) — ви отримуєте коробку з деталями й самі вирішуєте: це буде спорткар чи трактор.

Ось у чому проблема: Коли люди кажуть "Я встановив Linux", вони насправді мають на увазі, що встановили Дистрибутив.

Навіщо нам це розуміти? Уявіть, що ви влаштувалися на роботу. На вашому ноутбуці стоїть Ubuntu, а сервери компанії працюють на CentOS або Alpine. Якщо ви не розумієте різниці, ви спробуєте встановити програму звичною командою, отримаєте помилку command not found і запанікуєте.

Сьогодні ми розберемося в цьому "зоопарку", щоб ви почувалися впевнено в будь-якому середовищі.


2. 🧠 Теоретична база (Що під капотом?)

Давайте заглянемо під капот. Що ж таке Дистрибутив?

Запам'ятайте просту формулу:

Linux (Ядро) + GNU (Утиліти) + Пакетний менеджер + Графічна оболонка = Дистрибутив

1. Ядро (Kernel) — Це серце 🫀

Воно керує "залізом": процесором, пам'яттю, Wi-Fi. Воно майже однакове у всіх дистрибутивах.

2. Пакетний менеджер (Package Manager) — Це найважливіше 📦

Це те, що відрізняє їх найбільше. Це як "App Store" або "Google Play", але в командному рядку. * У Debian/Ubuntu це apt. * У Fedora/RHEL це dnf (або старий yum). * У Arch Linux це pacman.

Вони роблять одне й те саме — скачують і встановлюють софт, але "спілкуються" різними діалектами.

3. Філософія оновлень 🔄

Це те, що треба зрозуміти інтуїтивно. * Fixed Release (Стабільні): Як Debian або RHEL. Версії програм заморожуються на роки. Це надійно, як танк. Нічого не зламається після оновлення, але софт може бути старий. Ідеально для серверів. * Rolling Release (Плинні): Як Arch Linux. Ви завжди маєте найновішу версію софту (вчора вийшла — сьогодні у вас). Але є ризик, що нове оновлення щось зламає. Ідеально для ентузіастів та розробників.


3. 🧪 Приклади: Від простого до хардкору

Уявімо, що нам треба встановити вебсервер Nginx, щоб запустити свій сайт. Як це виглядає в різних світах?

Приклад 1: Світ Debian / Ubuntu / Mint

Це найпопулярніша родина. Дружня, як домашній собака.

Ви (студент): Що я маю написати? Код:

sudo apt update
sudo apt install nginx

Пояснення: apt (Advanced Package Tool) йде в офіційний репозиторій Ubuntu, бере стабільну перевірену версію і ставить її. Все просто.


Приклад 2: Світ Red Hat / CentOS / Fedora

Це корпоративний стандарт. Серйозні дядьки в костюмах.

Ви: Та сама команда спрацює? Реальність: Ні, apt тут не існує. Код:

sudo dnf install nginx

Пояснення: Тут працює dnf (Dandified YUM). Він робить те саме, але працює з пакетами .rpm. Це світ серверів Enterprise-рівня.


Приклад 3: Світ Arch Linux

Це для тих, хто любить контроль. "Я сам знаю, що роблю".

Ви: Мабуть, тут теж якесь слово типу "install"? Реальність: Ха! Arch не любить довгих слів. Код:

sudo pacman -S nginx

Пояснення: -S означає Sync (синхронізувати/встановити). Arch дасть вам найновішу версію Nginx, яка вийшла, можливо, 2 години тому.


4. 🛠 Практична частина

Час "забруднити руки" (хоча б ментально). Ось вам 5 завдань.

Завдання 1: Детектив Ви зайшли на віддалений сервер і не знаєте, яка там ОС. Ви вводите apt --version і бачите помилку command not found. Ви вводите rpm -qa і бачите список пакетів. Питання: До якої родини належить цей дистрибутив? (Debian чи Red Hat?)

Завдання 2: Вибір для Бабусі Вашій бабусі потрібен ноутбук тільки для YouTube та Skype. Вона боїться терміналу. Що оберете: Arch Linux (щоб було швидко) чи Linux Mint (схожий на Windows)? Чому?

Завдання 3: Банківський сервер Ви будуєте серверну інфраструктуру для банку. Головна вимога — стабільність протягом 5 років. Вам не потрібні нові фічі, вам потрібно, щоб воно не впало. Ваш вибір: Fedora (оновлюється кожні 6 міс) чи Debian Stable?

Завдання 4: Виправлення помилки Джуніор намагається встановити Python на сервері CentOS командою: sudo apt-get install python3 Система лається. Завдання: Напишіть правильну команду для цього сервера.

Завдання 5: Міні-кейс ("А що, якщо...") А що, якщо ви хочете спробувати Linux, але боїтеся стерти свій Windows? Рішення: Які у вас є варіанти? (Підказка: Віртуальна машина, Live USB, WSL).


5. 💡 Мислення як у розробника

Ось де новачки часто помиляються, а профі — ні.

1. Помилка "Distro-hopping" (Стрибки по дистрибутивах) Новачки думають: "Ой, я не можу налаштувати Wi-Fi на Ubuntu, спробую Manjaro, може там краще". Як думає профі: "Linux — це Linux. Якщо я не можу налаштувати це тут, я, ймовірно, не зможу і там. Треба читати логи та розбиратися в проблемі, а не міняти обгортку".

2. Війна "Священних воєн" Новачки сперечаються, що краще: apt чи pacman. Як думає профі: Це просто інструменти. Молоток чи викрутка? Залежить від задачі. Для продакшн-сервера я візьму Ubuntu/Debian/RHEL. Для свого домашнього ноута — те, що мені зручніше візуально (може, Fedora або Pop!_OS).

3. Порада з практики Не вчіть команди напам'ять. Вчіть концепції. Якщо ви знаєте, що вам треба "оновити список пакетів" і "встановити пакет", то ви просто загуглите: "how to install package on alpine linux" і знайдете команду apk add. Головне — знати, що ви шукаєте.


6. 🧩 Підсумок

Отже, що ми маємо у сухому залишку?

  1. Linux — це ядро (двигун). Дистрибутив — це машина в зборі.
  2. Головна різниця для користувача — Пакетний менеджер (apt, dnf, pacman).
  3. Для серверів обираємо стабільність (Debian, RHEL), для дому — зручність (Ubuntu, Mint) або свіжість (Arch, Fedora).

Що ви тепер вмієте? Ви більше не скажете "Я знаю Linux". Ви скажете: "Я працюю з Debian-based системами, але можу розібратися і з RHEL". І це звучить набагато професійніше.

🔍 Тизер: Тепер, коли ми обрали систему, нам треба навчитися з нею говорити. Наступного разу ми відмовимося від мишки, відкриємо чорне вікно Терміналу і дізнаємося, чому клавіатура — найпотужніший інструмент розробника. До зустрічі!