LINUX.ORG.RU

Кастомный CRUX iso (kernel, xorg-server)

 , , ,


1

2

Привет. Суть такова, что требуется получить на выходе кастомный CRUX iso. Но я пока не понимаю с какого боку подступиться. Актуальная версия кракса на данный момент 3.6.1 с лтс-веткой кернела 5.4.80 на борту. Стоковый хорг-сервер на борту: CRUX 3.6 ships with Xorg 7.7 and xorg-server 1.20.9. То бишь версия 1.20.9.

Суть такова, что ядро 5.4.80 по ряду причин мне не подходит. Мне нужно откатиться до 4-й ветки, а именно до 4.19.x, которая будет поддерживаться до 24-го года. Более того, для меня не подходит хорг-сервер 1.20.9. Мне нужна фиксированная версия 1.19.x.

Если я буду клонировать официальный git repo (включая xorg.git) дабы собрать свой вариант, то там будет всё актуальное. А ведь, например, версия хорг-сервера 1.19.x была в краксе аж в 2017-м году. В краксе 3.5 хорг был - 1.20.5. В краксе 3.4 - 1.20.0. Плюс там зависимости от версии к версии меняются. Если я руками всё буду чекать - я не увязну намертво? По сути меня интересует своего рода дебиановский аналог, но в окружении кракса, что-то по типу блокировка обновлений зависимых:

apt-mark hold xserver-xorg-core xinit

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

А как, собственно, быть в краксе? Иметь актуальную пакетную базу кракса, но при этом откатиться до 4-й ветки ядра вместе со специфичной версией хорг-сервера 1.19.x. Ставить изначально 3.3, потом обновлять репо? Ручками парсить зависимости, редактируя актуальную базу? Не могу сообразить.

Как к подобным вопросам подходят Ъ? Я не эксперт в краксе, поэтому буду рад советам.

если ты заходил в гит, то видел там iso.git, внеси все необходимые изменения и пересобери. это самый простой и уже готовый метод.

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

for pkg in `prt-get listinst`; do prt-get update -fr $pkg; done

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

# find /usr/ports -name '*.pkg.tar.*'

для создания своего ISO образа можешь использовать booty

ты можешь создать минималистичное chroot-окружение, установив туда только core-репозиторий, и из него собрать booty build chroot/ загрузочный ISO со всеми *.pkg.tar пакетами внутри.

в целом всё это очень просто.

если ты хочешь Ъ-way, пересобирая систему несколько раз, пройти путь от stage0 до stage3 так сказать, то можешь взять скрипт https://github.com/spfng/distutils/blob/master/systems/crux/crux_gnulinux-staging/Distfile -- у меня правда так и не дошли руки довести эту систему сборки до ума, но там ничего кроме цикличной пересборки пакетов несколько раз нету. это тот-же prt-get update -fr $pkg.

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

Благодарю за развёрнутое и подробное разъяснение =) Направление работы понял - буду тестировать.

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

берёш ставиш последний core. -> делаеш свою редакцию нужных портов в своей коллекции -> PROFIT зависимости разрулишь по ходу сборки порта (нудно). я xorg-server-1.17.4 недавно собирал в современном окружении, поглядывая в соответствующую редакцию LFS, там где про сборку иксов, и порты смотрел, кажется, из 3.1. ничего сложного, но неудобно. с портами, которые тянут сотни зависимостей тяжеловато будет. хорошо бы как-то автоматизировать процесс получения списка зависимостей (с указанными версиями, где это указано) из исходников. может, как-то через ./configure можно получать готовый список зависимостей? он же останавливается сразу на первой ошибке, выдавая только одну зависимость за раз. есть ли утилиты которые выдёргивают весь список зависимостей из дерева исходников?

teod0r ★★★★★
()

нужен прямо кастомный iso? https://crux.nu/Wiki/BuildingISO

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

устанавливаешь с диска, вот этого: https://crux.ninja/updated-iso/crux-3.6-updated.iso, значит:

core --> полностью, я выкидываю exim и sudo(замена на opendoas)

opt -->  alsa-lib, gtk*, hicolor-icon-theme, linux-firmware, wpa_supplicant/wireless-tools(если нужен wifi), openbox, xterm

xorg --> libepoxy, mesa, xorg, xorg-libxxf86-misc, xorg-xf86-input-libinput, xorg-xf86-video-? xorg-xrandr,xrdb,xset

загрузчик --> на выбор

пишу по памяти, если что забыл, сам там смекнешь, на месте.

остальное подтянется по зависимостям, ядро качаешь с https://cdn.kernel.org, собираешь, перезагружаешься, (1)качаешь systemrescuecd, записываешь это дело на флешку, загружаешься, чрут в крукс и… вперед – пересобирать xorg-server, попутно решая конфликты.

(1) этот момент можешь пропустить, если есть другой комп или планшет, не знаю как тебе удобнее

prt-get lock $name – замораживай нужный пакет.

твой репо в prt-get.conf должен быть выше остальных. вроде все.

ставить голый core, и от него плясать, не советую.

PS я такими вещами не занимаюсь, так что… относись к этому как к теории!

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

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

anonymous
()

дружище, че там у тебя, получается? ты это, не спеши, а то на работу с красными глазами придешь – скажут наркоман!

не забудь историей упеха поделиться.

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