Хочу собрать свой дистрибутив Linux со своими репозиториями. Подскажите, с чего начать?

Некоторые наши подписчики интересуются сборками собственных дистрибутивов Linux. Мы передали вопрос экспертам, и вот что они ответили.

Павел Емельянов

Павел Емельянов, главный архитектор Virtuozzo

Разных дистрибутивов сегодня существует огромное количество (хотя популярных немного), и они все довольно большие. Делать свой “с нуля”, во-первых, не просто, во-вторых, скорее всего, бессмысленно. Гораздо полезнее будет разобраться в существующих дистрибутивах и попробовать придумать, чем именно “свой” будет лучше.

Михаил Бараблин

Михаил Бараблин, руководитель проектов по автоматизации IT-инфраструктур в AT Consulting

Воодушевившись прочтением книги Линуса Торвальдса «Just for Fun», можно обратить внимание на проекты Linux From Scratch, документирующие сборку Linux с нуля. Однако этот путь может не принести удовольствия, тем более на раннем этапе освоения Linux. Мой совет – выбрать привлекательный по идеологии существующий дистрибутив, особенно из числа “инженерных”, (например: Gentoo, Arch Linux), но также подойдут и Debian/Ubuntu, Fedora за свои доброжелательные сообщества. Когда вы начнете работать с дистрибутивом, попробуйте внести свой вклад в проект: пакетирование новых, но уже популярных программ, написание или перевод документации, оказание помощи в листах рассылки. Это поможет изучить внутреннее устройство дистрибутива. На основании этого опыта можно будет решить, материализовывать свои идеи в новом дистрибутиве (возвращаясь к LFS) либо влиять на текущий. Из источников информации могу порекомендовать книги о ядре Linux Роберта Лава, а также лекции курсов информационных технологий Яндекса.

Дмитрий Молчанов

Дмитрий Молчанов, ведущий системный администратор, руководитель группы системного администрирования инфраструктурных проектов Mail.Ru Group

Если кратко:
LFS ;)

Если развернуто:
А зачем собирать свой дистрибутив?
А чем вас не устраивает что-то из существующего?

Михаил Кечинов

Михаил Кечинов, сооснователь студии Михаила Кечинова

С ответа на вопрос: зачем?

Михаил Дронов

Михаил Дронов, web-разработчик в Undev

В первую очередь я бы начал с вопроса: а зачем это надо? Linux – это не только ядро вкупе со сборником системных и прикладных программ. Это большой труд громадного количества людей. Просто так взять открытые программы, наваять пару обоин, свой логотип при запуске и [добавить фичу по усмотрению] – не круто. Это будет жить ровно столько, сколько у вас будет “энтуазизма”.

Если же хочется докопаться до начал и узнать о том, как Linux работает изнутри, почему и зачем он устроен так, как устроен, то, для начала почитать матчасть. Например, книги Баха Мориса, Эндрю Таненбаума об архитектуре операционных систем. Далее, книга Linux From Scratch как раз поможет собрать “свой” дистрибутив с нуля. Вооружившись компилятором, вы пройдёте путь от начала до более-менее живой сборки ванильного Linux, собирая при этом все возможные грабли.

И вот тогда уже, вооружившись теорией, практикой (довольно боевой) и опытом использования других Linux-систем, вопрос “с чего начать” должен отпасть сам собой.

Василий Кобзарь

Василий Кобзарь, преподаватель GeekBrains, специализируется на администрировании Linux

Начните вот с чего. Ответьте себе честно на два вопроса:
а) Зачем вам это нужно?
б) Представляете ли вы, какой объём работы перед вами открывается?

Антон Плешивцев

Антон Плешивцев, ведущий разработчик в aviasales.ru

Первым делом стоит убедиться, что вы очень хорошо представляете как работает и устроена ОС Linux и стандарт POSIX. Скорее всего с выбором основы для дистрибутива проблем не будет – выбор огромен (но наверняка Ubuntu или CentOS). Другое дело, что важно будет правильно нарастить “мясо”. Тут я бы рекомендовал посмотреть готовые примеры, почитать профессионалов: Линуса Торвальдса, Петра Линка. Если будет уделяться много внимания производительности, рекомендую эту книгу.

Александр Чистяков

Александр Чистяков, главный инженер в Git in Sky

Остановитесь и вспомните, какое именно неудачное событие в детстве привело вас к этому решению. Нет, правда.

Антон Пискунов

Антон Пискунов, основатель и генеральный директор BeastGaming

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

Поэтому сначала определите цель, а уже от неё пляшите что вам требуется внутри. У вас должен выйти чёткий список хотелок.

Берите этот список, проект LFS и вперед.

Кирилл Мокевнин

Кирилл Мокевнин, технический директор образовательного проекта Hexlet.io

Самый распространенный вариант – Linux From Scratch.
Там есть пошаговые инструкции по созданию своего дистрибутива. Можно еще собрать Gentoo из исходников, попутно изучая процесс, а потом попробовать немного отходить от стандартного мануала.

Андрей Ситник

Андрей Ситник, веб-разработчик в Evil Martians

Я подскажу не собирать свои репозитории – это даст вам множество проблем (самая простая для понимания – безопасность – легко пропустить критическое обновление мелкой библиотеки, из-за которой вас потом взломают). Даже если у вас чисто образовательная цель, то лучше просто помогите существующим дистрибутивам — например, устройте свой PPA или возьмите на начните поддерживать какой-то проект. Работая один вы допустите множество ошибок, о которых вам не скажут.

Василий Журавский

Василий Журавский, tech lead FutureLab, RuGadget

Я бы начал с вопроса “зачем”. Если с целью изучения – ок. Не дает покоя слава Canonical – не ок.

На этот раз эксперты были единогласны и итоговый короткий ответ будет такой:

  1. Задайте себе вопрос: зачем вам это надо?
  2. Если всё таки надо, то посмотрите в сторону LFS.

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