Linux: от А до Я/Дистрибутивы

← Вступление Глава Программы →
Дистрибутивы
Ознакомление с понятием дистрибутивов, их разновидностей, и некоторыми примерами.


После прочтения настоятельно рекомендуем как практическое задание: Linux: от А до Я/Установка,

Дистрибутивы Linux на 2020 год

О понятии дистрибутив

править

Дистрибутив GNU/Linux - это набор различных программ (ядро), компоненты GNU, графическая подсистема, графические оболочки, реализующие оконный интерфейс, различное прикладное и системное ПО, собранных вместе, в единую операционную систему. Очевидно, что из такого количества компонентов можно собрать самые разные дистрибутивы для самых разных целей.

Сейчас cуществует достаточно много самых разных дистрибутивов (взгляните на картинку справа).

У многих дистрибутивов есть свои семейства. Например, на Debian основано множество дистрибутивов, в том числе и Ubuntu, и при этом, на Ubuntu основаны другие дистрибутивы, например, Linux Mint. Что значит "основаны"? Это значит, что значительная часть ПО, репозиториев и компонентов, используется «наследником»: в нашем случае все они используют одни и те же репозитории, одни и те же менеджеры пакетов apt и dpkg.

Делается это не спроста: для разработчиков это упрощает задачу в создании дистрибутива, так как значительная часть уже будет написана и остается подведение дистрибутива под определенные цели; для пользователя же - переносимость ПО: программы, которые устанавливаются на Debian, с огромной долей вероятностью установятся на Ubuntu и Linux Mint.

Дистрибутивы можно отслеживать на сайте http://www.distrowatch.com

Примеры дистрибутивов для новичков

править

Как мы сказали ранее, рассмотреть дистрибутивы вы можете на сайте http://www.distrowatch.com. Тем не менее, мы опишем наиболее актуальные дистрибутивы для новичков:

Ubuntu/Mint - дистрибутивы основанные на Debian (Mint основан на Ubuntu). В них есть графические пакетные менеджеры(так называемые, магазины),консольный менеджер - apt. Главная особенность Mint в отличии от Ubuntu - стандартная графическая оболочка, которая удобна для пользователей с других ОС ( в частности, Windows), наличие многих инструментов, которые позволяют новичкам не использовать консоль, а также факт, что Mint разрабатывается сообществом разработчиков, а не компанией и ограничивает использование snap-пакетов.

Manjaro - дистрибутив основанный на Arch. Главное отличие от прошлых дистрибутивов - использование pamac в качестве "магазина" и pacman в качестве консольного менеджера, поддержка других оболочек официально (GNOME, XFCE, KDE). Унаследовал от Arch rolling release, что позволяет использовать самые последние версии программ из репозиториев.

Ключевые особенности

править

Как уже была сказано ранее, существует множество дистрибутивов, похожих на одних и не похожих на других. Описание 20-30 дистрибутивов нам ничего не даст - через года многие из них могут уйти в небытие. Именно поэтому, мы решили описать ключевые особенности (компоненты) в этой главе, те особенности, изменение которых будет доступно любому начинающему в Linux.

При этом, сами компоненты оказываются достаточно стабильными в своем развитии и, судя по всему, будут существовать гораздо большее время нежели сами дистрибутивы.

В следующих главах будут описываться более «фундаментальные» компоненты, настройку которых если и надо делать, то надо делать с умом.

Графические оболочки и DM

править

Графические оболочки

править
 
Все графические оболочки на 2012 год. Все кроме KDE(Qt) используют GTK

От графических оболочек будет зависеть вид вашего интерфейса и наличие некоторых программ. Если вы раньше использовали Windows, то разница между графическими оболочками Linux чуть больше чем разница между интерфейсом Windows 7, Windows 8 и Windows 10 без учета самих программ.

Каждая графическая оболочка преследует свои цели: дать пользователю функциональный интерфейс, дать удобный интерфейс, дать быстрый и лёгкий интерфейс, и т.д.

Те же самые графические оболочки в дистрибутивах не сильно, но отличаются. Дистрибутив может как поддерживать, так и не поддерживать оболочку: Linux Mint официально поддерживает Cinnamon, MATE, XFCE, но не поддерживает KDE,LXDE и другие. Но это не значит, что вы не можете их установить - можете, но могут быть проблемы при работе той или иной оболочки, а оболочка будет использоваться из другого дистрибутива (например, в Mint можно установить Kubuntu).

Рассмотрим основные оболочки:


Графическая оболочка созданная проектом GNU, а значит полностью свободная. Начало разработки было начато Мигель де Икасой в 1997 году и была основана на GTK. Значительные изменения произошли в версии v3(обратите внимание на скриншоты): интерфейс стал похож на интерфейс для телефона, что понравилось немногим: Линус Торвальдс стал использовать XFCE, а другие разработчики (по его совету) создали альтернативные интерфейсы: Cinnamon и MATE. Тем не менее, GNOME сейчас поддерживается во многих дистрибутивах и во многих из них является основной графической оболочкой.

Как уже было сказано ранее, из-за выпуска 3-ей версии GNOME решено было создать ответвление и оно было создано в 2011 году пользователем Perberos и получило название MATE. Фактически, MATE является оболочкой похожей на GNOME v2 - она является ее ответвлением: были заменены некоторые приложения GNOME v3. MATE как основную оболочку можно выбрать во множестве дистрибутивов.

Cinnamon, подобно MATE, также является ответвлением от GNOME v2 и разрабатывается командой разработчиков Linux Mint. Оболочка была представлена в 2012 году и сейчас является стандартной оболочкой в Linux Mint и поддерживается множеством дистрибутивов. Она обладает некоторые особенностями:

  • Анимация, прозрачность, трансформация окон
  • Настройка панелей
  • Аплеты и виджеты
  • Продвинутые настройки тем
 

KDE был создан в 1996 году Маттиасом Эттрихом. Главная цель - реализовать простой и понятный графический интерфейс, в котором все программы отображались однородно. Сам KDE расшифровывается как K Desktop Environment. В 2009 году KDE (версии KDE 5) был разделен на несколько проектов: KDE Plasma(сама оболочка, интерфейс), KDE Frameworks(библиотеки KDE), KDE Applications(программы KDE).

KDE Plasma существует в разных версиях: для десктопа, для телефона, для телевизора и т.д.

В KDE есть достаточно достаточно много интересных особенностей:

  • KRunner - поисковик,конвертер, калькулятор.
  • Activties (активности) - виртуальные рабочие столы, в которых можно настраивать обои, закладки, организовывать рабочий стол и т.д.
  • Виджеты - отдельные модификации для рабочего стола, позволяющие улучшить комфортность работы.
  • Файловый менеджер Dolphin - позволяет работать с вкладками(как в браузере), добавляет возможность просматривать при наведении содержимое папки и т.д.
  • KDE Connect - позволяет подключить телефон к компьютеру, и через него управлять.
  • Yakuake - выпадающая консоль

Типичные дистрибутивы, которые поддерживают KDE: Kubuntu(Ubuntu с KDE), Manjaro KDE, OpenSUSE KDE, KDE Neon(дистрибутив от KDE основанный на Ubuntu) и многие другие.

Главным камнем предкновения является фреймворк Qt, на котором пишутся все программы и компоненты KDE: он ранее был несвободным и только с недавнего времени был лицензирован по нескольким лицензиям - GPL v3 и LGPL v3.

XFCE появилась в 1996 году, и была основана на CDE, хотя и в итоге, она была полностью переписана.Основатель - Оливер Фордан. Главная цель - дать пользователю удобную и быструю систему. XFCE, как и другие окружения обладает своим ПО.

LXDE появился в 2006 году благодаря Хун Жень Йи. Главная цель - аналогичная XFCE. При этом, судя по всему, LXDE оказывается еще более легким окружением в сравнении с XFCE. В LXDE многие компоненты написаны на GTK, в LXQt, графической оболочке появившейся в 2013 году, компоненты написаны на Qt.

Дисплейный менеджер - программа запускающая сессию на X-сервере. То есть, это окно входа в систему.

SDDM - стандартный ДМ для оболочки KDE 5. Заменил KDM, предназначавшийся для KDE 4.

GDM - стандартный ДМ для оболочки GNOME. В отличии от XDM, позволяет настраивать меню входа не прибегая к консоли.

LightDM - используют Ubuntu, Linux Mint и многие другие. Имеет ту же функциональность, что и GDM, но отличается более простой кодовой базой, благодаря чему призван быть легким и быстрым ДМ.

Репозитории

править

Что такое репозитории?

править

Репозитории ― это место (на веб-сервере), где хранятся и поддерживаются различные файлы. При этом это достаточно общее определение.

Некоторые разработчики хранят свои программы на платформе GitHub (или GitLab, или BitBucket), другие хранят на своих сайтах(например: Arch User Repository, репозитории Ubuntu).

Почему так делается? На Windows и Mac OS программы чаще всего скачиваются с сайта и просто устанавливаются используя .exe файл. В Linux же вариантов установить ту или иную программу гораздо больше и это вызвано тем, что понятие удобства на Linux у людей значительно различаются. Репозитории же оказываются, вероятно, лучшим компромиссом для разработчиков и пользователей, для безопасности и удобства программ.

Очевидным, с точки зрения безопасности, оказывается тот факт, что если был бы один репозиторий для определенного дистрибутива, то существовала опасность его отключения, взлома, блокировки и т.д. Именно поэтому существуют так называемые зеркала репозиториев, которые часто расположены в разных странах (что влияет на скорость загрузки), хотя программы обычно там содержатся те же самые.

О репозиториях дистрибутивов

править

Наиболее популярные репозитории - это те репозитории, которые привязаны к дистрибутивам, где и хранятся множество программ. Важно понимать, что репозитории дистрибутивов может использовать только "семья". Вы не можете установить в Manjaro (Arch-подобный) программы из репозиториев Ubuntu, точно также как и не сможете установить в Ubuntu программы из репозиторев Fedora,но вы сможете устанавливать программы в Linux Mint(основан на Ubuntu) из репозиториев Ubuntu - это объясняется совместимостью форматов пакетов(Fedora использует RPM, Ubuntu - использует DEB).О форматах файлов мы говорим чуть позже. Чаще всего программы будут в репозиторях всех этих дистрибутивов (и в Ubuntu-репозиториях, и в Arch, и в Fedora), но бывают и исключения - о решениях этих проблем мы поговорим в отдельной главе.

О репозиториях разработчиков

править

Неприятная особенность репозиториев дистрибутивов: свежесть программ. Часто бывает так, что программы которые находятся в репозиториях отстают от актуальной(даже стабильной, а не тестовой) версии на полгода, а то и больше. Именно поэтому, существуют репозитории разработчиков программ, например, репозиторий LibreOffice. Там содержаться последние версии программ. Примером такого "сборника репозиториев" является Launchpad от Ubuntu(Canonical)

Среди дистрибутивов есть и исключение в плане отставания от актуальных версий - это Arch-подобные дистрибутивы, в которых используется rolling release: "существует только последняя версия программ".

О репозиторях сообщества

править

На самом деле, грань между предыдущим и этим видом репозиториев - неощутима. В этом виде репозиториев каждый желающий может загрузить свою программу, а шанс того, что сообщество проверит программу - не определен, хотя наиболее популярные программы чаще проверяются. Все это порождает некоторые риски с безопасностью, ведь в отличии от официальных репозиториев вы не будете уверены, что скачанные программы безопасны. Примером такого репозитория является AUR.

Единый репозиторий

править

Но неужели суждено так, что весь мир Linux-программ будет разделен? Вероятно, нет. Попыткой создания единого репозитория для всех программ занимается компания Canonical(Snapcraft) и Flatpak(Flathub). Программы из этих репозиториев устанавливаются в любую Linux-систему.

Проприентарность и свобода

править

Это не входит в нашу классификацию, но еще одним различием в репозиторях является закрытость и открытость кода. Многие дистрибутивы придерживаются компромисса позволяя подключать репозитории проприентарного программного обеспечения, так и свободного(да да, обычно репозитории стараются делиться на строго открытые или смешанные), другие же придерживаются политики запрета проприентарных репозиториев.

Форматы файлов исполняемых программ в Linux

править

Мы не можем не рассказать о форматах файлов, затронув тему репозиториев - вы ведь, может быть, захотите установить программу с официального сайта разработчика.

Как мы говорили ранее, программы для Linux обычно имеют формат .deb(семейство Debian), .rpm(семейство Red Hat), но могут и представлять из себя архивы tar.* (звездочки означют, что там может быть любое слово, в этом случае - gz,xz и т.д.). Установка DEB, RPM-пакетов проста: установить DEB можно двойным щелчком(аналогично .exe в Windows), установить .rpm:

sudo rpm -i pkg.rpm # где rpm - команда для работки с rpm-пакетами, -i - ключ 
                    # для установки, pkg.rpm - скачанный файл

Вопрос с установкой .tar архивов обстоит иначе: он может содержать в себе как исходный код, так и скрипт к исходному коду или же ярлык, благодаря которому можно двумя щелчками запустить программу. Установку программ мы рассмотрим в практической части нашего руководства.

Также нельзя не сказать об формате AppImage: это формат пакетов, который позволет использовать программу как portable-версию(т.е. использование без установки. Вспомните программы для монитрования диска из главы 1).

Пакетные менеджеры

править

Перед прочтением рекомендуем ознакомиться с работой терминала

Пакетные менеджеры - это программы, которые позволяют управлять процессом установки, удаления, обновления той или иной программы. Пакеты же - это комплекс программ с дополнительной информацией, так называемыми метаданными, в которых указаны, например, версия программы, ее контрольная сумма, зависимости, требования, разработчики и т.д.

Пакетные менеджеры могут работать как с репозиториями, так и напрямую с файлами. Различия между самыми менеджерами пакетов: удобство, форматы пакетов и т.д.

Пакетные менеджеры могут быть как графическими, то есть быть доступным для пользователя любого уровня (например, Synaptic, Pamac, GNOME software), так и консольным, то есть для пользователей предпочитающих работать с консолью (например, dpkg, apt, snap и т.д.).

Графические пакетные менеджеры

править

Sinaptic - достаточно популярный графический менеджер позволяющий управлять пакетами в Debian-подобных дистрибутивах.

Консольные пакетные менеджеры

править

dpkg

rpm

apt

yum

zypper

pacman

portage