Короче, камрады, во время установки этих всяких *BSD наткнулся я на LFS или мож чуть раньше наткнулся, но в башку ёбнуло токо сейчас. Есть такой сайт
www.linuxfromscratch.org, на ём есть книжка-инструкция LFS, в которой абисняицца, как по тырнету натырить пакетов, скомпилировать их и получить свой минимальный Линукс. Linux-from-Scratch переводицца как "Линукс с нуля" или "Линукс из ничего". Ну, он не очень минимальный, но не будем об этом. Уметь он будет очень мало - загружацца, выключацца и простейшие операции какие-то. Если хочется большего, есть другая книжка-инструкция BLFS - Beyond Linux From Scratch, вот там точно до хрена всего. Есть ещё ALFS - Automated LFS, типа всё то же самое, токо не ты сам, а скрипт для тебя всё буит собирать для экономии времени. Ещё есть Hardened LFS - с заёбами по безопасности и CLFS - Cross Linux - кросс-компиляция для другой платформы.
читать дальше
Это ещё не всё. Поскоку Линукс развиваецца - постоянно выходят новые версии пакетов, то и LFS вынужден идти в ногу со временем - инструкция имеет версии. Последняя стабильная (типа без глюков) версия имеет номер 8.1. И BLFS тоже имеет такие же версии. Для ALFS это не так актуально. Ну и, если вы ещё не охуели, с некоторого времени LFS имеет два варианта сборки - со старым добрым init и с новым еретическим systemd.
А на хера вообще всё это надо? Ну, считается, типа, что если ты с нуля по инструкции соберёшь свой дистрибутив Linux, то начнёшь лучше понимать, как он работает. Вот ради этого-то я и решился. Почитал отзывы, раньше народ собирал за месяц, щас можно за три дня, а то и вообще за несколько часов. Ну, раз такое дело, то можно и попробовать. В четверг вечером меня пробило на работе.
Сказано тщательно следуйте приведённым инструкциям. Ну чо я, читать штоле не умею? Буду следовать, конечно. Рекомендуется смонтировать отдельный диск. Нет у меня отдельного, херня, думаю, обычная папка сойдёт. Даётся список требований, что должно быть в системе и сразу скрипт, который всё это проверяет автоматом. Нах мне скрипт, чо я, совсем штоле? Руками проверил, вроде соотвецтвует.
Приступаем к сборке "временной цепочки инструментов". Первый пакет binutils собрался на ура за 36сек. Ободрённый успехом, скачиваю 4 пакета - gcc, mpc, mfpr, gmp. По инструкции 3 пакета куда-то складываются внутрь gcc, это я не сразу понял. Дальше нужно найти 3 файла в папке gcc/config. А именно:
config/linux.h
config/i386/linux.h
config/i386/linux64.h
А нет их там! Я завис и на этом ушёл домой. Дома ещё раз скачал и распаковал этот же пакет - нету этих файлов! Ну, думаю, мож с предыдущей версии LFS инструкция осталась? Скачал пакет gcc-6.3.0 из LFS-8.0. Там тоже нету этих файлов! Ладно.
В вс пришёл на работу нашёл на ютюбе запись Linux-from-Scratch 8.0. Смотрю.
youtu.be/eAPhPLx-dLg
Приближаемся к моменту поиска файлов, он копирует команду, у него файлы есть, у меня нет. Скачиваем один и тот же пакет! Как так-то, бля? о_О Поискал через find. Оказывается, структура пакета:
gcc-7.2.0/config
gcc-7.2.0/gcc/config/linux.h
gcc-7.2.0/gcc/config/i386/linux.h
gcc-7.2.0/gcc/config/i386/linux64.h
то есть, внутри есть папка config, в которой ничего нет, а есть ещё gcc и уже в ней config, в которой всё есть.
- Вот пидоры! - подумал я.
Начал собирать. Не собирается. Идёт-идёт, потом хуяк error. Полез в тырнет, искал-искал, встретил намёк на то, что нету g++. G++ это GNU версия C++. Да ладно, чо за бред? У меня ж есть компилятор gcc, конечно там есть с++. Скопировал энтот скрипт проверки требований, он мне показывает: С есть, С++ нет.
- Вот пидоры! - подумал я.
Установил С++, проверил скриптом требования, вроде всё норм, поехали собирать. Собралось.
Дальше вроде всё без сюрпризов, иногда на тестах глючило, но в главе 5 тесты делать необязательно, это всё равно всё временное. Ну вот для byson нужен flex, тогда тесты проходят. gawk выдавал тоже косяки какие-то на тестах. Не помню, как решил, короче, закончил пятую главу. Щас шестая впереди - то же, что и пятая, только в большем масштабе. А потом ещё чуть-чуть и буит у меня LFS.
В свете этого почитываю записи тех, кто уже собрал. Рекомендуют как можно раньше прикручивать менеджер пакетов. Другие говорят, что с менеджером пакетов это уже будет не LFS. Но перед тем, как прикрутить этот менеджер, надо ваще понять, как это сделать. Есть несколько способов применить "пакетную технику" в Linux и каждый пакетный менеджер использует ту или иную из них. И прежде чем решить, надо всё это понимать, а у меня с пониманием очень смутно. Так что пока думаем, что делать. Варианты:
1) дособрать чистый LFS, а потом попробовать установить Gentoo или Arch для расширения кругозора, т.к. это практически тот же LFS + менеджер пакетов
2) попробовать прикрутить какой-нить менеджер пакетов, а для этого изучить какие они есть и как вообще работаютТо бишь теперь увлекательного красноглазия будет очень, очень много! (с)
Lurkmore