LINUX.ORG.RU

Дистрибутив Linux

 


0

1

Всех приветствую!

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

  1. Подскажите, пожалуйста, в какую сторону стоит смотреть и что изучать, если я хочу собрать и вести свой собственный дистрибутив Linux? Первое, что приходит в голову это Linux from Scratch или взять за основу Gentoo. Прав ли я?

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

сейчас многие дистрибутивы делают на основе Arch.
Каждая инсталляция Gentoo тоже в каком-то плане свой дистрибутив со своей уникальной конфигурацией пакетов
А что именно нужно получить? Для тонкой кастомизации не обязательно создавать свой дистр.
А для нового бренда дистрибутива не обязательна тонкая кастомизация - обычно можно взять готовую пакетную базу и сделать клон
Можно даже взять готовый дистрибутив, сделать для него immutable инсталлятор и поставлять в виде проверенных билдов-снэпшотов

mittorn ★★★★★
()

в какую сторону стоит смотреть и что изучать, если я хочу собрать и вести свой собственный дистрибутив Linux?

Лучше начать с хорошей литературы по психологии.

James_Holden ★★★★★
()

LFS – это не столько дистрибутив и даже не столько руководство по созданию дистрибутива, сколько руководство по созданию своего личного, уникального и неповторимого экземпляра GNU/Linux.

Если нужен именно дистрибутив, что-то тиражируемое — я бы посоветовал покурить одно из руководств по созданию сборки на основе Debian. Их несколько, кое-что можно найти непосредственно на Debian.org.

hobbit ★★★★★
()

если я хочу собрать и вести свой собственный дистрибутив Linux? Первое, что приходит в голову это Linux from Scratch или взять за основу Gentoo. Прав ли я?

В целом, да.

Понимаю, что тут без знаний программирования никак не обойтись,

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

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

с чего начать, если у меня есть желание написать свой собственный инсталлятор? Есть ли какие-то мануалы по этому поводу?

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

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

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)

Первое, что приходит в голову это Linux from Scratch

У https://github.com/NuTyX/nutyx не очень получилось:

NuTyX is a GNU/Linux distribution for multiple architectures inspired by the online documentation Linux From Scratch (LFS).

NuTyX features a custom package manager called «cards». Cards can install binary packages, a set of related binary packages (e.g. desktop packages, such as KDE or Xfce), and compile source packages from «ports». The distribution is designed for intermediate and advanced Linux users.

dataman ★★★★★
()

в какую сторону стоит смотреть и что изучать, если я хочу собрать и вести свой собственный дистрибутив Linux?

В первую очередь стоит определить, а что именно Вы понимаете под термином «дистрибутив»?

Если это нечто, использующее ядро Linux, но значительным образом (иерархия путей, способ дистрибуции приложений, модель обновлений, кастомизация системы инициализации и т.д.) отличающееся от других имеющихся дистрибутивов, то Ваш путь LSF, программирование на Сишечке, и вдумчивое курение сорцов ядра и используемых утилит. Но зачем это Вам надо? Есть что-то, что категорически не устраивает Вас в остальных дистрибутивах? У Вас достаточное число сильно мотивированных единомышленников? Сильно сомневаюсь, что ответ «да», так как в противном случае Вы бы не задавали вопросы, а чётко осознавали что именно Вы хотите изменить, и какие усилия для этого стоит предпринять. Если же Вы хотите произвести столь большую работу в одиночку, при этом не имея ясных целей, то месье знает толк в извращениях!

Если под понятием «дистрибутив» Вы имеете ввиду просто набор устанавливаемых приложений (aka «Zver-сборка от Васяна»), то просто поставьте Arch - при таком понимании термина, у каждого арчевода свой, отличный от всех других «дистрибутив».

QsUPt7S ★★★
()
Последнее исправление: QsUPt7S (всего исправлений: 1)

Linux from Scratch

да

Gentoo

нет.

Лучше чем CRUX, наверное, пока ничего нет. Всё сводится к ПМ и мейнтейнингу портов. В одиночку тащить дистр почти не реально. Придётся каждый день возиться с обновлениями десятков портов.

Я создал скрипты по автоматизированной сборке LFS по книге (сейчас правда версия уже отстала, давно не обновлял), и скрипт по превращению этого готового LFS в свой кастомный CRUX. Всё одной командой. Ну и половина портов (из установленных) переделаные.

teod0r ★★★★★
()
Последнее исправление: teod0r (всего исправлений: 1)
Ответ на: комментарий от hobbit

уникального и неповторимого экземпляра GNU/Linux.

Не уникального. Шаг влево - шаг вправо от инструкции из LFS и ничего не соберётся. Чтобы создать что-то уникальное, нужно не LFS читать, а именно что понимать, что такое сборка, патчи; разбираться в софте; уметь в программирование хотя бы на поверхностном уровне.

В самой LFS практически нет теории. Это простейшая прикладная инструкция с указанием конкретных версий софта, конкретных патчей и конкретных скриптов.

shell-script ★★★★★
()

Да, бери Linux from Scratch, то что нужно

masa ★★
()

Бери любой дистрибутив Linux и изучай, из чего он состоит. Включай дебаг и изучай работу пакетного менеджера, инсталлера и так далее. Попробуй в любом дистрибутиве Linux ставить не готовую систему, а минимальную, потом достраивать её по кирпичикам, постепенно накручивая сложность и от условного ядра+init+libc+udev+bash доведи до полноценного рабочего стола. Дистрибутив не принципиален.

Потом можно будет уже посмотреть в сторону сборки софта/пакетов. Опять же, не принципиально, каких.

Параллельно пиши на каком-нибудь понравившемся ЯП. Какой выберешь, уж извини, ищи в гугле учебники по нему.

Но перед всем этим сформулируй задачу - что нужно от дистра. В процессе изучения думай, как эту задачу реализовать по мере получения знаний.

От LFS толку ноль. Это пошаговая инструкция для сборки сферического линукса в вакууме. Ну, может быть только бегло пробежаться, чтобы понять, какие компоненты за что отвечают, но там всё слишком поверхностно.

Gentoo - это хорошо. Возможно тебе и не понадобится после неё собирать «свой» дистрибутив, потому как она очень хорошо кастомизируется. Но опять же, чтобы уйти от парадигм генты, нужно очень глубоко закопаться в саму генту.

shell-script ★★★★★
()

Первое, что приходит в голову это Linux from Scratch

Прав ли я?

ИМХО, да, хорошее начало. Всё равно когда распробуешь, перестанешь просто по инструкции делать, а уже видеть что и как можно на свой вкус поменять.

Понимаю, что тут без знаний программирования никак не обойтись

Обойтись можно, но зависит от пожеланий. Может захотеться подружить разный несовсем совместимый софт или иметь строго желаемую версию определённого софта, тогда колупание почти неизбежно. Сам не заметишь, как войдёшь во вкус и пройдя от coreboot до firefox уже пару сотен патчей будет в руках.

Всё верно уже предыдущие ораторы изложили: это не задачка и не упражнение на один раз, это такая спец олимпиадатакое хобби отдельное. Примерно как ездить на bmw 1980 года выпуска, не посещая мастерских и не обращаясь к автомеханикам. Интересно, увлекательно-познавательно, трудозатратно, но удовлетворительно. Не будешь заходить в гараж полгодика, всё протухнет.

LLM-9000
()
Ответ на: комментарий от James_Holden

Почему по психологии? Психология же нужна тим-лидерам, чтобы мотивировать/управлять мантенерами, а ТС в одиночку хочет.

mky ★★★★★
()
Ответ на: комментарий от mky

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

James_Holden ★★★★★
()
Ответ на: комментарий от mky

Почему по психологии?

а ТС в одиночку хочет

Возможно, психология поможет понять, что «хотеть не вредно».

В одиночку мейнтейнить целый дистр не то чтобы прям вообще физически невозможно. Возможно, наверное. Но для этого надо либо иметь прям очень много свободного времени (считай, заниматься этим вместо работы) и энтузиазма, либо быть «богом» аки Патрик. Тут явно не второе (такие не задают подобных вопросов, а сразу делают, никого ни о чём не спрашивая), первое — не исключено, конечно, но маловероятно. Впрочем, скорее всего, самый простой способ понять, что в одиночку не потянешь — попробовать. Хотя бы полгодика поподдерживать, и придёт понимание.


Впрочем, есть некоторая вероятность, что ТС вообще не нужен свой дистрибутив с нуля, а нужна просто какая-нибудь собственная сборка существующего дистра на свой вкус. Ну типа как EndeavourOS для Arch, только с лаптой и барышнями вместо блекджека. Нечто подобное при некотором таланте — да, можно и самому потянуть, ведь практически вся пакетная база будет сделана другими, а от себя нужны будут «истинно верные» дефолты и нескучные обои по сути.

Тут было бы неплохо таки получить ответ, какова конечная цель.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 3)

Определитесь, что вы хотите.

Дистрибутив, это инфраструктура - репозиторий, форум/вики. Все это надо держать в актуальном состоянии, поскольку дистрибьюция подразумевает распостранение, а значит ответственность перед пользователями. Иначе это просто сборка или настройка под себя.

dmitry237 ★★★★★
()

LFS хорош для мантейнеров всяких пакетов. Подсмотреть как оно вживую делается без костылей и подпорок :-)

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

ещё стоит смотреть Alpine - минимально малое, с практичными целями сделанное.

MKuznetsov ★★★★★
()
Ответ на: комментарий от CrX

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

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

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от CrX

получить ответ

В преждних темах ТС обычно не отвечал на уточняющие встреные вопросы. А эта тема вобще подозрительная, ТС 2 с лишним года ничего не писал на ЛОР и внезапно решил свой дистрибутив делать. Осень или кто-то просто кто-то угнал акк и пытается набрасывать...

mky ★★★★★
()

Сделайте на основе ubuntu bolgen OS refresh. Не обязательно брать дистрибутив из исходников. Исходники есть и так почти в каждом дистрибутиве. Распакуйте, поиском замените логотипы и обои. Вот ваш дистрибутив и готов.

jura12 ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.