Linux deb что это

Обновлено: 02.07.2024

Чтобы начать создавать deb пакеты, нужно установить несколько пакетов:

Подготовка папки с исходниками

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

Папка должна называться имяпакета-версия. Т.е. если у меня есть папка Plugins с программой версии 0.1, то я создаю папку с именем plugins-0.1.


Теперь нужно создать архив с этой папкой. Архив должен содержать в имени *.orig.tar.gz, т.е.:


Последний подготовительный шаг, это создание в папке с исходниками папки debian со множеством служебных файлов. Чтобы это сделать, нужно выполнить команду:


В процессе выполнения этой команды будет задан вопрос о том, какой тип архива мы создаем, самый простой это single.

На самом деле документация говорит, выбирать вариант только single. Т.к. я не смог понять всех требований к пакету типа library но меня вполне устраивает результат, то описание и дальше пойдет про пакет типа library.

Настройка пакета

Вся настройка пакета происходит путем редактирования файлов в каталоге debian. Рассмотрим те файлы, которые будем использовать:

  • changelog — история пакета.
  • control — главный конфиг пакета;
  • rules — аналог Makefile для пакета;

changelog

Данный файл содержит историю изменения пакета и текущую версию пакета. Посмотрим на его содержимое:


В начале идет название пакета — libvksplugins, затем его версия. Версия делиться на две части символом «-». Первая часть показывает версию программы в пакете, вторая «ревизию» пакета. Ревизия это версия пакета, т.е. если раньше такого пакета не было, то ревизия равна 1. Если же пакет с такой версией программы уже был, но в нем произошли изменения, то ревизия увеличивается.

Слово unstable показывает, что пакет является не стабильным, т.е. он не был протестирован должным образом на машинах пользователей.

Надпись urgency=low показывает срочность изменения. Т.к. срочности нет, то значение равно low. Если бы, мы делали пакет для исправления серьезной уязвимости или ошибки, то значение можно было бы установить в high.

После первой строки идет пустая строка, а за ней первая запись:


В Debian, changelog используется для автоматического закрытия ошибок в системах отслеживания ошибок в программных продуктах. Т.к. в данном случае, я не использую такую систему, то эта строка принимает вид:

Последняя строка является подписью человека, сделавшего запись. В ней содержится имя и адрес, а также дата изменения.

После установки deb пакета, файл changelog устанавливается в

control

Файл debian/control является главным конфигом, при создании deb пакета. Вот пример такого файла:


Видно, что файл разбит на секции при помощи пустых строк. Каждая секция описывает один пакет, создаваемый из папки с исходниками. Рассмотрим их по порядку:

Source Данная секция говорит о том, что нужно создать пакет исходных кодов. Параметром указано libvksplugins, это значит, что пакет исходных кодов будет называться libvksplugins.

Priority Эта секция устанавливает приоритет пакета. Т.к. система может прекрасно обойтись без нового пакета, то значение секции установлено в optional. Т.е. этот пакет не обязателен для установки. Подробнее о приоритетах написано здесь.

Maintainer Эта секция описывает контакты человека, создающего пакет. Ее формат довольно прост и дополнительного описание не требует.

Build-Depends Одна из самых важных секций, устанавливающая зависимости пакета. Зависимости, указанные в данной секции должны быть выполнены, чтобы можно было собрать пакет. Т.е. список зависимостей для сборки и установки могут отличаться.

Видно, что в зависимостях стоят debhelper (>= 9), cmake. Зависимость debhelper (>= 9) ставиться для всех пакетов по умолчанию. Она нужна для корректной работы программ вида dh_*.

Второй элемент cmake был добавлен потому, что папка с исходниками содержала файл CMakeLists.txt, т.е. для сборки используется система сборки CMake. Для того, чтобы узнать, какие зависимости есть у программы, можно почитать ее документацию. Кроме этого, можно воспользоваться командой dpkg-depcheck. Данная команда должна запускаться так:


Но, т.к. при использовании CMake нет скрипта конфигурирования, то я использую ее так:


Из примечательных тут можно отметить:

cmake
qt4-qmake
libqt4-dev

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


При этом в CMakeLists.txt указана версия cmake, которую нужно использовать:


Я думаю, что разработчику виднее, и поэтому указываю версию из CMakeLists.txt. Для Qt 4 все понятно с номерами версий, но для очистки совести проверим и их версии:


Т.е. для Qt 4 указываем версию 4.8.6:


Standards-Version Версия стандарта, в соответствии с которым создан файл. Это значение не нужно менять.

Section. Секция для пакета, т.е. группа пакетов, выполняющая одну задачу. В Политике Debian разделе 2.4 этот вопрос описан более подробно.

Homepage Домашняя страница проекта. Т.к. данный код писал я и у него нет страницы, просто удаляю эту строку.

Vcs-* Ссылки на репозитории проекта. Их у меня тоже нет, поэтому удаляю эти строки.

Другие пакеты После секции файла, где описывается пакет с исходниками, идут секции, которые описывают другие пакеты, создаваемые из пакета с исходниками. Схема создания пакетов:


Из схемы видно, что из исходников программы, я хочу получить 4 пакета:

  • пакет с исходными кодами;
  • пакет с бинарником (самой библиотекой);
  • пакет для разработки (заголовочные файлы);
  • пакет с документацией.

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

Кроме описанных выше пакетов, можно создать dbg пакет с отладочной сборкой программы. Это может пригодиться, если программа падает и у Вас есть под рукой отладчик. Однако, я так и не смог понять как это делать. Документация не дает ответа на этот вопрос. Если делать так как описано в ней, то я либо получаю пустой пакет либо получаю кучу ошибок при сборке.

Схема на рисунке выше показывает, что пакет с исходниками называется libvksplugins_source, однако, в файле control указано, что пакет с исходниками будет называться libvksplugins. На самом деле, он действительно будет называться libvksplugins, а пакет с бинарниками, будет называться libvksplugins… deb. Суть этой путаницы в том, что пакет с исходниками представляет собой tar архив и служебные файлы, тогда как пакет бинарников это архив с расширение deb.

Настройка пакета библиотеки Посмотрим внимательно на описание пакета библиотеки:

Для пакетов, содержащих скрипты или тексты, нужно указывать значение как all.

Третья строка, описывает зависимости создаваемого пакета. Вот как она описана в 4й главе Руководства начинающего разработчика Debian:

Утилита dh_shlibdeps вычисляет зависимости двоичного пакета от общих библиотек. Она генерирует список исполняемых файлов ELF и общих библиотек, которые находит для каждого двоичного пакета. Этот список подставляется вместо $ .

Утилита dh_perl вычисляет зависимости Perl. Она генерирует список зависимостей от perl или perlapi для каждого двоичного пакета. Этот список подставляется вместо $ .

Некоторые команды пакета debhelper могут добавлять зависимости к вашему генерируемому пакету. Каждая команда генерирует список необходимых пакетов для каждого двоичного пакета. Этот список подставляется вместо
$ .

Утилита dh_gencontrol генерирует файл DEBIAN/control для каждого двоичного пакета, заменяя $ , $ , $ и т.д на полученные значения.

Т.е. эта строка говорит о том, что сборщик пакета сам определит зависимости.

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

  • строка должна начинаться с пробела;
  • строка не должна быть длиннее 80 символов;
  • пустая строка должна начинаться с пробела и состоять из символа точки.

Настройка пакета документации Вместе с библиотекой поставляется документация, чтобы она была в отдельном пакете, добавляем его описание:

rules

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


Видно, что это bash скрипт с синтаксисом Makefile. Единственная интересная конструкция здесь это


Это шаблон, который для всех целей вызывает dh команду с передачей аргументов ей. Для сборки пакета важно, чтобы текст dh $@ начитался с символа табуляции. Т.е. отступ это не пробелы, а табуляция.

Т.к. исходники используют систему сборки CMake, то нужно изменить эту запись следующим образом:

Содержимое пакетов

После того, как мы указали в debian/control какие пакеты мы хотим получить, нужно указать какие файлы в какой пакет помещать. Для этого, для каждого названия пакета из файла control, нужно создать в папке debian два файла. Первый должен называться пакет.dirs, а второй пакет.install. Суть файлов в том, что первый указывает, какие папки нужно создать для пакета, а второй, какие файлы включить в пакет.

Посмотрим на их содержимое:


Важный момент, отсутствие начальной дроби в путях и отсутствие дроби в конце пути к папке. Проверив, куда CMake устанавливает файлы библиотеки, можно сформировать такие файлы:

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

Т.к. исходники мои, то никаких дополнительных описаний и ограничений copyright у меня нет, поэтому я удаляю все лишние файлы из каталога debian.

Сборка пакетов

После настройки, сборка пакетов происходит довольно просто, нужно в папке проекта (которая включает подпапку debian) выполнить команду:


Параметры -us -uc говорят о том, что не нужно подписывать gpg ключом созданные пакеты. Их можно не использовать, если настроен ключ подписи gpg по умолчанию. Как указать ключ подписи по умолчанию, я тоже не понял. Если все прошло хорошо, то у нас поваляется набор пакетов в папке выше:

Заключение

Если вы дочитали до сюда — значит вы любите читать.

Этот текст является результатом моего опыта внедрения deb пакетов на работе. Опыт показал, что наличие сетевого репозитория (reprepro) и внимательное отслеживание версий, позволяют без проблем обновлять и тестировать различные версии ПО на парке из 30 машин с системами Astra Linux 1.3, 1.4 и Эльбрус ОС.

Самый популярный способ распространения программ в Linux - это репозитории программного обеспечения. В репозиториях программы находятся в специальном формате. В Debian и основанных на нём дистрибутивах используется формат пакетов deb. В этих пакетах находится архив всех файлов программы, инструкции по их установке в системе для пакетного менеджера, а также другая служебная информация.

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

Создание deb пакетов

Шаг 1. Подготовка

mkdir hellolosst
cd hellolosst

Затем поместите в неё файл с исходным кодом:


Для компиляции программы выполните такую команду:

gcc hellolosst.c -o hellolosst

Затем вы можете её выполнить:


Таким образом, теперь у нас есть программа, которую надо упаковать в deb пакет.

2. Создание манифеста

В каждом deb пакете содержаться не только файлы самой программы, но и файл манифеста, в котором описан пакет, его зависимости и параметры. Этот файл имеет название control и должен находится в папке DEBIAN. Для сборки пакета будем использовать папку package, чтобы файлы программы не путались с исходными файлами и те не попали в пакет. Создайте эти папку:

mkdir -p package/DEBIAN

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

du -k ./hellolosst


Если файлов несколько, то можно удалить исходники и посмотреть общий размер папки с файлами программы. Дальше надо понять от каких пакетов будет зависеть ваша программа. Для этого воспользуйтесь командой objdump:

objdump -p ./hellolosst | grep NEEDED


В данном случае программе необходима только libc. Чтобы посмотреть в каком пакете она находится выполните:


Пакет называется libc6. Затем создайте файл манифеста со следующим содержимым:

Это минимальный набор параметров в файле манифеста. Вот их значение:

  • Package - имя пакета;
  • Version - версия программы в пакете, будет использована при обновлении пакета;
  • Section - категория пакета, позволяет определить зачем он нужен;
  • Priority - важность пакета, для новых пакетов, которые ни с чем не конфликтуют обычно прописывают optional, кроме того доступны значения required, important или standard;
  • Depends - от каких пакетов зависит ваш пакет, он не может быть установлен, пока не установлены эти пакеты;
  • Recommends - необязательные пакеты, но тем не менее они обычно устанавливаются по умолчанию в apt;
  • Conflicts - пакет не будет установлен, пока в системе присутствуют перечисленные здесь пакеты;
  • Architecture - архитектура системы, в которой можно установить этот пакет, доступные значения: i386, amd64, all, последнее означает, что архитектура не имеет значения;
  • Installed-Size - общий размер программы после установки;
  • Maintainer - указывает кто собрал этот пакет и кто отвечает за его поддержку;
  • Description - краткое описание пакета.

3. Расположение файлов

Манифест готов. Теперь в папке пакета надо создать структуру папок, аналог того, что есть в корневой файловой системе. В данном случае надо создать папку usr/bin и поместить туда исполняемый файл:

mkdir -p package/usr/bin

mv ./hellolosst package/usr/bin

4. Скрипты установки

Несмотря на то, что система установки пакетов очень мощная и позволяет делать многое, некоторые вещи всё же сделать нельзя. Для решения этой проблемы была предусмотрена возможность выполнять скрипты перед установкой пакета и после. Аналогично это работает для удаления пакета - перед и после. Эти скрипты называются preinst, postinst, prerm и postrm. Каждый файл просто содержит набор скриптов, которые надо выполнить. Например:

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

5. Сборка и проверка пакета

Осталось собрать настроенный пакет. Для этого используйте такую команду:

dpkg-deb --build ./package


Теперь вы знаете как как собрать deb пакет. После завершения сборки можете установить его с помощью apt:

sudo apt install


Выводы

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

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Установка новых программ - один из самых важных моментов при работе с вашей системой. Раньше мы уже рассматривали добавление PPA в систему и установку программ из исходников. Но даже в PPA есть далеко не все пакеты, а установка из исходников слишком сложна для новичков.

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

Где взять deb пакеты?

deb10

Дальше выбираем архитектуру:

deb8

И осталось получить deb файл для нашей системы:

deb9

Если у вас есть другой компьютер с интернетом или вы планируете устанавливать программы потом, а сейчас нужно только скачать deb пакеты, то это можно сделать с помощью apt:

apt download имя_пакета

deb

Пакет будет сохранен в текущей папке и дальше вы сможете все без проблем установить. Но будет скачан только сам пакет, без его зависимостей. Зависимости мы можем получить только в системе с интернетом используя команду apt-rdepends:

apt download имя_пакета $(apt-rdepends имя_пакета|grep -v "^ ")

Теперь у вас есть не только пакет, но и все его зависимости.

Установка deb пакетов Ubuntu

Установить Deb пакет Ubuntu не так уж сложно, для этого даже есть несколько утилит. Можно устанавливать как с помощью графического интерфейса, так и в терминале.

Самый простой способ установки - в графическом интерфейсе, с помощью центра приложений, с него и начнем. Откройте файловый менеджер в папке с пакетом:

deb1

Выполните двойной клик по deb пакету, далее откроется центр приложений, где вы посмотреть информацию о пакете и запустить установку нажав кнопку установить.

deb2

Установка программ Ubuntu с помощью центра приложений мне не очень нравится, он обычно очень долго думает и не всегда правильно открывает программу, но можно воспользоваться другой графической утилитой - gdebi. Сначала ее нужно установить:

sudo apt-get install gdebi

Теперь кликаем правой кнопкой мыши по файлу, выбираем открыть с помощью и gdebi:

deb5

Дальше осталось нажать кнопку установить и дождаться завершения установки пакета ubuntu. Программа автоматически установит все зависимости, если есть доступ к сети.

deb6

Установка deb из консоли Ubuntu выполняется не намного сложнее. Для этого используется утилита dpkg. Сначала переходим в папку куда был загружен deb пакет:

sudo dpkg -i имя_пакета.deb

deb3

Для этой команды доступны символы сокращений, например, можно написать вот так, чтобы установить все deb пакеты из этой директории:

$ sudo dpkg -i *.deb

Программа не умеет разрешать зависимости, даже если есть доступ к сети, она только устанавливает пакет, поэтому для установки зависимостей после установки deb ubuntu выполните:

$ sudo apt-get -f install

deb4

Теперь, когда зависимости были загружены, вы можете запускать и использовать программу.

Это не единственный способ установки пакетов ubuntu через терминал, утилиту gdebi тоже можно запустить таким способом:

sudo gdebi имя_пакета.deb

Возможно, вы не знали, но apt тоже умеет устанавливать deb пакеты и даже более чем успешно разрешает зависимости. Только утилите нужно передать полный путь к файлу для установки. Если вы находитесь в папке с deb пакетом выполните:

sudo apt install ./имя_пакета.deb

deb7

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

Выводы

Вот и все. Теперь установка deb пакетов в Ubuntu не вызовет у вас проблем. Оказывается, есть несколько способов установки программ в ubuntu и все они имеют свои преимущества. Если у вас остались вопросы, спрашивайте в комментариях!

Поговорим о Debian и Ubuntu. И там, и там можно использовать команды apt-get для управления приложениями. Оба дистрибутива поддерживают установку DEB-пакетов. Часто, читая статьи про Linux, можно видеть, что для Debian и Ubuntu подходят одни и те же инструкции по установке каких-то программ.

Чем же, при такой близости друг к другу, различаются эти дистрибутивы?



Для начала надо сказать, что Debian и Ubuntu принадлежат одном и тому же семейству Linux-дистрибутивов. А именно — Debian — это исходный дистрибутив, созданный в 1993 году Иэном Мёрдоком. А дистрибутив Ubuntu, основанный на Debian, создал в 2004 году Марк Шаттлворт.

«Дистрибутив Ubuntu основан на Debian», — что это значит?

Хотя и существуют сотни дистрибутивов Linux, лишь немногие из них являются независимыми, то есть, созданными с чистого листа. Среди крупнейших независимых дистрибутивов можно отметить Debian, Arch Linux, Red Hat.

Дистрибутив Ubuntu основан на Debian. Это значит, что Ubuntu использует тот же механизм работы с пакетами (APT), что и Debian, и то, что в Ubuntu применяется очень много пакетов и библиотек из репозиториев Debian. В качестве базы для Ubuntu используется инфраструктура Debian.


Базой для Ubuntu является Debian

Именно так выглядят взаимоотношения большинства Linux-дистрибутивов с теми дистрибутивами, на которых они основаны. Они используют ту же систему управления пакетами и те же пакеты, что и базовый дистрибутив. Но они, кроме того, добавляют к существующим пакетам свои пакеты. Именно в этом и кроется отличие Ubuntu от Debian, несмотря на то, что ОС Ubuntu основана на Debian.

Различия между Ubuntu и Debian

Итак, ОС Ubuntu построена на базе архитектуры и инфраструктуры Debian, она использует те же DEB-пакеты, что и Debian.

Значит ли это, что пользоваться Ubuntu — это то же самое, что и пользоваться Debian? Не совсем. Существует множество дополнительных факторов, которые отличают один дистрибутив от другого.

Обсудим эти факторы и, таким образом, сравним Ubuntu и Debian. Прежде чем мы начнём — прошу помнить о том, что некоторые сравнения применимы к настольному варианту ОС, а некоторые — к серверному.

▍1. Цикл выпуска

Существует два вида выпусков Ubuntu — LTS ( Long Term Support, «поддержка в течение длительного периода») и обычные. LTS-выпуски выходят каждые два года, они поддерживаются в течение 5 лет. При обновлении системы у пользователя есть возможность обновиться до следующего доступного LTS-выпуска. Такие выпуски считаются более стабильными, чем обычные.

Каждые шесть месяцев выходят обычные выпуски Ubuntu, не относящиеся к категории LTS. Их поддержка осуществляется лишь в течение девяти месяцев, но в них имеются более новые, в сравнении с последним LTS-выпуском, версии ПО и возможности. Когда заканчивается жизненный цикл используемого обычного выпуска — нужно обновиться до следующей версии Ubuntu.

В результате у того, кто пользуется Ubuntu, учитывая особенности выхода её выпусков, есть возможность выбирать между стабильностью и новыми возможностями.

А вот у Debian имеется три вида выпусков: стабильные (Stable), тестируемые (Testing) и нестабильные (Unstable). Нестабильные выпуски предназначены для «полевых» испытаний, для реальной работы ими лучше не пользоваться.

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

И наконец — скажем пару слов о стабильных выпусках Debian. Это — основные выпуски Debian. Они могут не отличаться наличием в них самого нового ПО или самых новых возможностей, но, если говорить о стабильности, то можно сказать, что они исключительно стабильны.

Новый стабильный выпуск выходит раз в два года. Такие выпуски поддерживаются в течение трёх лет. После этого нужно обновляться до нового стабильного выпуска.

▍2. Свежесть программного обеспечения


Команда apt-cache policy

Ориентированность ОС Debian на стабильность означает то, что разработчики системы не всегда стремятся к тому, чтобы включать в неё самые свежие версии программного обеспечения. Например, в самой свежей Debian 11 используется GNOME 3.38, а не последняя GNOME 3.40.

То же самое касается и другого ПО — вроде GIMP, LibreOffice и так далее. Это — тот компромисс, на который вынужден идти тот, кто выбирает Debian. Именно поэтому в сообществе Linux популярна шутка «Debian stable = Debian stale», намекающая на то, что стабильная Debian — это Debian не первой свежести.

Выпуски Ubuntu LTS тоже нацелены на стабильность. Но в них обычно используются более актуальные, чем в Debian, версии популярного ПО.

Стоит обратить внимание на то, что то же самое справедливо и для некоторых программ, устанавливаемых из репозиториев, поддерживаемых разработчиками ОС. В результате, например, если вам нужна самая последняя версия Docker — можно добавить репозиторий Docker и в Debian, и в Ubuntu.

В целом же можно отметить, что в стабильных выпусках Debian обычно используются более старые версии ПО, чем в сравнимых выпусках Ubuntu.

▍3. Доступность программного обеспечения

И Debian, и Ubuntu имеют огромные репозитории программного обеспечения. Но у Ubuntu есть ещё и PPA (Personal Package Archive). Благодаря PPA процедура установки более новых программ или свежих версий уже имеющихся программ немного облегчается.


Использование команды add-apt-repository

Использовать PPA можно и в Debian, но это не так удобно, как в Ubuntu. В Debian это обычно сопряжено с некоторыми проблемами.

▍4. Поддерживаемые платформы

Доступны варианты дистрибутива Ubuntu для 64-битных платформ x86 и ARM. В рамках проекта больше не выпускаются 32-битные образы ОС.

А Debian, с другой стороны, поддерживает и 32-битные и 64-битные архитектуры. Кроме того, Debian поддерживает ещё и 64-битную архитектуру ARM (arm64), и ARM EABI (armel), и ARMv7 (EABI hard-float ABI, armhf), и 32-битную архитектуру MIPS с обратным порядком байтов (mipsel), и 64-битную архитектуру MIPS с обратным порядком байтов (mips64el), и 64-битную архитектуру PowerPC с обратным порядком байтов (ppc64el), и IBM System z (s390x).

В результате — неудивительно то, что Debian называют «универсальной операционной системой».

▍5. Установка

Установка Ubuntu гораздо проще, чем установка Debian. И я, говоря это, не шучу. Установка Debian может вызвать сложности даже у пользователей Linux среднего уровня подготовки.

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

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


Не самая дружелюбная процедура самостоятельной загрузки прошивки в Debian

Команда разработчиков Ubuntu гораздо снисходительнее относится к включению в состав стандартного дистрибутива драйверов и прошивок с закрытым исходным кодом.

Кроме того, установщик Debian выглядит устаревшим, чего не скажешь об установщике Ubuntu. Установщик Ubuntu, кроме того, распознаёт другие ОС, установленные на диске, и предлагает пользователю возможность установки Ubuntu совместно с уже установленными системами (с возможностью сформировать конфигурацию двойной загрузки). А вот исследуя установку Debian я ничего такого не заметил.


Установка Ubuntu проходит гораздо приятнее, чем установка Debian

▍6. Встроенная поддержка различного аппаратного обеспечения

ОС Debian, как уже было сказано, ориентирована, преимущественно на FOSS (Free and Open Source Software, свободное и открытое программное обеспечение). Это означает, что ядро, предоставляемое Debian, не содержит драйверов и прошивок с закрытым кодом.

Это не значит, что такие драйверы и прошивки нельзя заставить работать в Debian. Всё дело в том, что пользователю придётся самостоятельно добавлять или включать соответствующие репозитории и вручную устанавливать то, что ему нужно. Это может, особенно у новичков, отбить желание пользоваться Debian.

Нельзя сказать, что Ubuntu — это совершенная ОС, но, в деле встроенной поддержки различных аппаратных устройств, она гораздо лучше Debian. Это означает, что Ubuntu легче привести в рабочее состояние, и то, что пользователю будет, с самого начала, удобнее работать с этой ОС, чем с Debian.

▍7. Выбор окружения рабочего стола

В Ubuntu, по умолчанию, используется специально настроенное окружение рабочего стола GNOME. Поверх него можно установить другое окружение, или выбрать какой-то вариант Ubuntu с другим окружением рабочего стола — вроде Kubuntu (там используется KDE) или Xubuntu (Xfce).

В Debian тоже, по умолчанию, устанавливается GNOME. Но установщик даёт пользователю возможность самому выбрать окружение рабочего стола.


Выбор окружения рабочего стола при установке Debian

С сайта Debian можно скачать образы, рассчитанные на установку определённого окружения рабочего стола.

▍8. Игры

В последнее время ситуация с играми в Linux, в целом, улучшилась, что произошло благодаря Steam и Proton. Но возможность запуска игр, конечно, сильно зависит и от аппаратного обеспечения.

Если говорить о совместимости ОС с аппаратным обеспечением, то Ubuntu лучше Debian справляется с поддержкой проприетарных драйверов.

Нельзя сказать, что того же, что способна дать Ubuntu, нельзя достичь в Debian, но на это потребуется потратить некоторое время и некоторые силы.

▍9. Производительность

Если говорить о производительности, то чёткого ответа на вопрос о том, что быстрее — Ubuntu или Debian — нет. Причём, это справедливо и для настольных систем, и для серверов. И та и другая операционные системы популярны как на настольном, так и на серверном фронтах.

Производительность компьютера зависит от его аппаратных возможностей и от набора установленного на нём программного обеспечения. Настраивать параметры системы, оптимизируя её производительность, можно и в Ubuntu, и в Debian.

▍10. Сообщество и поддержка

Debian — это истинный продукт трудов сообщества разработчиков. Всё, что касается управления этим проектом, находится в ведении членов сообщества.

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

Если же говорить о поддержке, то существуют специализированные форумы, на которых можно получить помощь и по Ubuntu, и по Debian.

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

Итоги

И Debian, и Ubuntu — это отличный выбор как для настольного компьютера, так и для сервера. Эти ОС используют менеджер пакетов apt и DEB-пакеты, и, в результате, дают своим пользователям очень похожие возможности.

Но для эффективного использования Debian нужен некоторый опыт. Особенно — если речь идёт о настольном варианте ОС. Если вы только начинаете осваивать мир Linux — то вам лучше будет остановить свой выбор на Ubuntu. Я полагаю, что новичкам, прежде чем перейти к Debian, нужно наработать некоторый опыт и познакомиться с Linux в целом.

Нельзя сказать, что знакомство с Linux нельзя начать с Debian, но такое начало, вероятнее всего, станет для новичка серьёзным испытанием.

Как вы выбираете дистрибутивы Linux для настольных компьютеров и для серверов?

Читайте также: