LINUX.ORG.RU

Хочу собрать свой собственный «дистрибутив» на основе Gentoo

 , , ,


0

1

У меня довольно странный вопрос. Я хочу собрать свой собственный «дистрибутив» на основе Gentoo. Это не будет чем-то большим, вроде Ubuntu или чего-то в этом роде. Все что я хочу сделать, это установить и настроить Gentoo в соответствии с моими предпочтениями, а потом создать загрузочный iso со всеми включенным в него стафом. Таким образом, я смогу пользоваться уже настроенной системой «искраропки» когда покупаю новый компьютер или когда мне нужно установить все заново. (пользовательские данные, конечно же, будут храниться в облаке). Также было бы неплохо компилировать образы без виртуальной машины (скорее всего в chroot)

Есть какие-нибудь идеи?

Планы на будущее:

  1. Хочу перенесите систему обновления A\B из Chromium OS, чтобы я мог создавать образы обновлений на сервере, а затем просто обновлять систему, не возясь с emerge. (плюс сборки будут всегда проверенные и если что я смогу откатится на рабочую сборку если что-то не будет работать)
  2. Какой-то графический метод установки (я подумываю о том, чтобы самостоятельно создать установщик с помощью flutter, главным образом потому, что это все, что я знаю на данный момент)

И еще кое какие утилиты для улучшения повседневного удобства использования. Скорее всего emerge для обновлений я практически использовать не буду если мне удастся портировать A\B обновления. А софт планируется устанавливать с помощью appimage и/или c помощью GNUstep-style .app bundle. Подсмотрел такую штуку в helloSystem. Причем утилиты за это ответственные уже написанные под freebsd но автор клянется что на линуксе тоже работает (но это надо проверить)

Сразу отвечу на вопросы которые могут появится: q: Почему Gentoo? a: Потому что хочу систему которую я могу собрать из сырцов + хорошая документация + там есть уже эбилды того что я хочу заинтегрировать

q: НЕ НУЖНО!!!/Кому это нужно? a: т.к делаю для себя то это можно считать экспериментом и кроме меня этим никто пользоваться не будет

q: Как будешь драйвера ставить? a: Т.к это gentoo то собираться и оптимизироваться все будет под конкретную машину. А потом остается только стянуть обновление с сервера. В проприетарных дровах я не нуждаюсь т.к у меня правильная AMD карта которая очень хорошо работает c MESA драйвером.

q: А cli утилиты ты тоже в appimage будешь ставить? Все понятно афтор дятел дизлайк атписка!!11 a: Нет конечно, все что мне нужно для работы можно установить через emerge. Ну или по поэкспериментировать с linux brew

q: Ты сказал что это нужно для «когда покупаю новый компьютер» разве это не противоречит «собираться и оптимизироваться все будет под конкретную машину» a: Нет, не противоречит. Я планирую сделать сборочный пайплайн в gitlab-ci и конфигурировать сборку под каждую конкретную машину. Но опять же если/когда мне это будет нужно

q: Макось какая-то получается. Нинужно a: Ну нет, до макоси как раком до китая. Но опять же, это больше эксперимент. Если получится собрать что-то рабочее, то возможно буду использовать как daily driver

q: что такое A\B обновление a: В системах с поддержкой обновлений A /B каждый раздел, такой как ядро или корневой (или другие артефакты, такие как DLC), имеет две копии. Мы называем эти две копии активными (A) и неактивными (B). Система загружается в активный раздел (в зависимости от того, какая копия имеет более высокий приоритет во время загрузки), и когда доступно новое обновление, оно записывается в неактивный раздел. После успешной перезагрузки ранее неактивный раздел становится активным, а старый активный раздел становится неактивным.

q: Чем это отличается от бекапов? Сделай бекап и потом просто раскатывай куда хочешь. Ты тратишь мое время a: Для того чтобы накатить бекап там уже должно что-то стоять. В любом случае если я захочу сменить железку придется повторять подвиг установки генты заново. Плюс я же говорю что хочу немного поднять юзабилить, напичкав в систему своих скриптов и софта. Проще же иметь образ в котором все это уже есть и как в рекламе просто добавить воды. А пользовательские дикпики файлы у меня и так в облако синхронятся.

q: Ты дурак и рак съеби с моих двощей лора a: Я дурак, у меня справка есть

q: Нескучные обои забыл. Попов тебе не родственник? a: Да, брат от прошлого брака по маме

q: Что ты курил? a: Мальборо с кнопкой



Последнее исправление: Unixson (всего исправлений: 6)

ЯННП. Звучит так, будто ищешь ты NixOS. Оптимизация под конкретное железо имеет смысл на слабом оборудовании, так что… женись, нарожай детей.

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

NixOS я пробовал, но это не то, слишком overengineered. Оптимизация под железо тут имеется ввиду не прям дрочить флаги до потери пульса но хотя включить минимальный набор под мой Ryzen 5. Ну и дрова свежие. И все

Unixson
() автор топика

хочу собрать свой собственный «дистрибутив» на основе Gentoo.

Хоти, не запрещено, только толку от «хотелок» как от козла молока.

«Собственный дистрибутив» на основе Gentoo уже собран. Calculate Linux называется.

anonymous
()

если хочется своего, то советую не размениваться на обыденную генту, а сразу брать за оснjву Linux from Scratch.
там будет истинно свой дистр !! а не очередное поделие с красивыми обоями.

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

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

Unixson
() автор топика
Ответ на: комментарий от Unixson

первичный LFS собирается хоть на убунте.

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

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

только толку от «хотелок» как от козла молока.

толк в том что это Research operating system

Calculate Linux

Гента довольно взрослый дистрибутив, а Calculate Linux как по мне какая-то поделка на коленке. Да простят меня пользователи Calculate. И так как я сам делаю поделку на коленке, то основывать мою поделку на какой-то другой поделке как-то контринтуитивно

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

основывать мою поделку на какой-то другой поделке как-то контринтуитивно

Кто говорил за «основывать»? Сказано и прочитано: уже сделано, ты опоздал.

anonymous
()
Ответ на: комментарий от pfg

генерь сразу образ системы в squashfs, а на рабочей машине с помощью overlayfs склеивай с пользовательскими завихрениями

по факту это и есть A\B обновления. Так называемые OTA или же Over the Air. Обновления по воздуху по русски. Имплиментацию можно глянуть тут

Плюс под генту есть уже готовый ebuild

Unixson
() автор топика
Ответ на: комментарий от Unixson

погоня за взрослостью - дорога в адъ :)
самые «взрослые» дистры давно уже уплыли по стиксу…

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

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

под взрослостью я понимаю наличие документации, активных или пассивных юзеров в количестве больше 1.5 человек

Unixson
() автор топика
Ответ на: комментарий от Unixson

необходимость в A\B обновления на десктопе мало кому нужна. посмотри NIXOS, там АиБ не то, что бы на трубе сидели, они б из многообразия никсоса вылетели со свистом лысых покрышек.
в железяках с большими аппаратными возможностями заходят с совершенно другой стороны :) контейнеризация приложения (а не системы) в «сферический пакет в ваккуме», отвязанный нахрен от системы и обновляемый аккурат, ну ни в A\B, но полностью со всеми соплями. так что смотри сам за чем будущее.

pfg ★★★★★
()

Calculate Linux Scratch уже есть

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

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

я же хочу собрать что-то похожее на Перетянуть в Applications файлик .app/.appimage и запустить двойным кликом.

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

Я уже давно не ставлю ничего из реп а просто юзаю appimage. Вот и захотелось развить идею.

Советую посмотреть вот это сразу станет понятнее чего я хочу добиться.

необходимость в A\B обновления на десктопе мало кому нужна

И тем не менее ChromeOS именно так и обновляется

Unixson
() автор топика
Ответ на: комментарий от Unixson

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

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

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

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

все бинари хранятся в кеше джавки и там же обновляются.

Причем тут OpenWebStart и джава?

Я говорю про отказ от пакетника в пользу установочных файлов аля .app или .appimage. Один файл, никаких зависимостей (кроме базовых в OS). Запуск через двойной клик

метод обновления хромос это задумка авторов, а не желание пользователей.

Желание пользователей это не видеть обновления и не знать что такое cli. Тем более контролировать обновления через консоль. Я считаю что это полная дичь.

в конечном варианте такого развития операционка превращается в контейнеровоз с минимальным наполнением в виде аппаратно завязанных драйверов и прочего HAL

Причем тут контейнеры?

В системах с поддержкой обновлений A /B каждый раздел, такой как ядро или корневой (или другие артефакты, такие как DLC), имеет две копии. Мы называем эти две копии активными (A) и неактивными (B). Система загружается в активный раздел (в зависимости от того, какая копия имеет более высокий приоритет во время загрузки), и когда доступно новое обновление, оно записывается в неактивный раздел. После успешной перезагрузки ранее неактивный раздел становится активным, а старый активный раздел становится неактивным.

Даже если операционка и превращается в контейнеровоз то чем это плохо? Если это все работает и не требует мейтененса. Юзеру нужно решать задачи, а не играть в ос.

Unixson
() автор топика
Последнее исправление: Unixson (всего исправлений: 2)

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

Бекапы/клонирование системы.

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

Пакетник как раз ломается чаще. Банально можно провтыкать и пакетник радостно снесет тебе пол системы удаляя маджонг (да да apt я на тебя смотрю).

И тут такие арчеводы как подорвутся с насеста, как скажут что у них в пакмане ничего не ломается. Это пакетник у тебя гавно и руки у тебя кривые ко ко ко. Ага, ну да, ну да, конечно. Я тоже раньше думал что рач не ломается.

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

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

Но это же не Ъ поэтому плохо

Unixson
() автор топика
Последнее исправление: Unixson (всего исправлений: 4)
Ответ на: комментарий от Unixson

Пакетник как раз ломается чаще.

Речь не «пакетик» (чая?). А за систему. В шапке ты написал Gentoo. То что ты пишешь сейчас никакого отношения к ней не имеет. А значит ты никак не сможешь позаимствовать многодесятилетнюю живучесть Gentoo в свою помойку.

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

многодесятилетнюю живучесть Gentoo в свою помойку

А я стесняюсь спросить за счет чего живучесть и что ты подразумеваешь под живучестью? В моем понимании живучесть это когда ты можешь в хвост и в гриву шатать систему и ничего не упадет. Мне однажды свет выключили когда я обновлял свою генту и сюрприз сюрприз GRUB RESQUE не заставил себя ждать. Пока я все восстановил прошел ни один час. Та же сраная убунта уже умеет восстанавливаться сама после таких крашей. Хотя и то не всегда

ЗЫ «Пакетник» он же пакетный менеджер. А гента тут просто прослойка которая нужна ради ядра, гнутого окружения, и загрузчика. Очень гибкая запускалка софта которую я могу безболезненно собрать из исходников. Все остальное нужно для того чтобы избавится от компеляния и красноглазия в сосноли. Собственно как это и должно быть. Базовая система обновляется в отрыве от прикладного софта.

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

я же хочу собрать что-то похожее на Перетянуть в Applications файлик .app/.appimage и запустить двойным кликом.

Так купи уже макбук и не страдай. Или не хватает бабок ещё?

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

Я могу себе позволить макбук, но:

  1. к сожалению половина того что мне нужно работает некорректно особенно на новых чипах. Тот же докер (последний раз когда я смотрел) приходится запускать через розету что если честно такое себе.
  2. внезапно игорь тонет! Большинство дрочилен в которые я играю прекрасно чувствуют себя в proton но на маке их либо нет, либо по старой привычке придется ибстись с wine. Либо ставить через буткемп офтопик. Что собственно сейчас невозможно из-за смены архитектуры.
  3. я привык к PC, хоть мак и вызывает у меня шевеление в штанах, но переходить на их инфраструктуру я не хочу
Unixson
() автор топика
Ответ на: комментарий от t184256

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

Nix is a purely functional package manager. This means that it treats packages like values in purely functional programming languages such as Haskell — they are built by functions that don’t have side-effects, and they never change after they have been built. Nix stores packages in the Nix store, usually the directory /nix/store, where each package has its own unique subdirectory such as /nix/store/b6gvzjyb2pg0kjfwrjmg1vfhh54ad73z-firefox-33.1/ where b6gvzjyb2pg0… is a unique identifier for the package that captures all its dependencies (it’s a cryptographic hash of the package’s build dependency graph). This enables many powerful features.

Если это не оверинджениринг то я не знаю.

Почему бы не устанавливать пакеты как в macOS к примеру? И иметь демон который чекает на сервере новые версии и просто подменяет .app целиком. А саму базовую систему обновлять целым неделимым куском. Да это не эффективно, зато просто как топор и так же надежно

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

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

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

Так а кто складывает кучу в / ? Все что делает пакетный менеджер это размазывает прикладной софт внезапно по различным директориям в /. Т.е насирает в /. А потом когда пришло время что-то снести вычисляет зависимости и ходя по директориям вырочевывает все кишки по списку. Может все же стоит отделять мух от котлет? Вон в snap пытались это исправить, но чет как-то говно все равно вышло

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

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

Unixson
() автор топика
Ответ на: комментарий от Unixson

Nix не накладывает, иди поспи, ты некогерентен.

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

Что меня научила разработка прикладного софта

Чему то явно научила. Но при чём тут Gentoo? Хде?

anonymous
()
Ответ на: комментарий от Unixson

Если этого не сделать юзеры будут срать везде

А какой замах то был! На целую «новую» ОС! А на деле просто обмазать любую ОС докером.

anonymous
()
Ответ на: комментарий от Unixson

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

grem ★★★★★
()

Есть какие-нибудь идеи?

Есть. Не заморачивайся, сохраняй конфиги того, что считаешь важным. Ты же не каждый день ставишь систему, поэтому тебе образ не нужен.

anonymous
()

В целом это такой гибрид подходов MacOS и ChromeOS и это вполне может работать.

Проблемы будут такие:

  1. Ты не установишь через AppImage приложения, которым надо ставить свои модули ядра, правила udev, юниты systemd. В обход AppImage тоже не установишь - у тебя базовая система неизменяемая. Получается ловушка.

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

  3. A\B обновления - вещь примитивная и устаревшая. Имеет много ограничений. Тебе придется дублировать занимаемый системой объем. Скорее всего, придется каждый раз скачивать полный образ системы для обновления. Иметь больше двух конфигураций (старая-новая) вообще проблематично - кратно увеличивается объем. Гораздо эффективнее использовать OSTree чем A\B в лоб. Еще эффективнее - использовать Nix.

  4. Как на твоей системе собрать тот же AppImage или вообще любой софт? Придется опять, еще раз разворачивать дубль системы, но уже пакетным менеджером. То есть все равно надо иметь мощный пакетный менеджер.

James_Holden ★★★
()

Зачем это всё? Купил новый комп — вытащил диск из старого, загрузился с него, разбил новый диск, скопировал систему, поставил загрузчик, подкорректировал файлы в /etc. Живёшь дальше.

imul ★★★★★
()

Наркомания - плохо. Эксперименты - хорошо.

Все что я хочу сделать, это установить и настроить Gentoo в соответствии с моими предпочтениями, а потом создать загрузочный iso со всеми включенным в него стафом

stage4 уже советовали? Ещё посмотри, как SystemRescueCD собирается.

Таким образом, я смогу пользоваться уже настроенной системой «искраропки» когда покупаю новый компьютер или когда мне нужно установить все заново

Поверь опыту, не сможешь. Вернее, сможешь, то это не то, что тебе понадобится IRL.

В общем, не хочу пророчить, тебе надоест экспериментировать раньше, чем что-то дельное получится.

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

Он от этого стал хуже? Как опыт сборки кастомного live ISO, почему нет.

В случае ТСа установочный ISO вообще не нужен, хоть он и хочет мышевозным приложением заменить tar xf.

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

есть:

найди работу, женись, заведи детей наконец. Не трать время зря

Jopich1
()
Ответ на: комментарий от Unixson

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

Посмотри на ClearOS от Intel. Всё, что ты хотел.

Not_a_Troll
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.