Минимальный инсталляционный носитель

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

Требования к эталонному носителю

Эмпирическим путём на текущий момент удалось определить каталог, где лежит образ для этого эталонного носителя:


https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/10.9.0+nonfree/amd64/iso-dvd/

Т.е. как бы требования к нему уже собрались пост-фактум. Несмотря на то, что использование дисков-DVD уже не столь популярно, как ещё лет 10-20 назад, ими удобно пользоваться: не надо их читать или лазить среди прочего хлама по флешке, искать её где-то. Достаточно при любом компьютере иметь этот эталонный DVD и возить с ним этот компьютер. Ну считайте это как такой OEM-диск, с которого можно установить полностью слетевшую операционную систему (ОС) на внутренний жёсткий диск и сразу же начать работать. Даже при отсутствии подключения к сети в деревне.

Вторым важным моментом является то, что этот диск можно записать при желании на флеш-накопитель при отсутствии болванок или элементарного внутреннего или внешнего USB-дисковода DVD. А такое очень распронено в наше время и тренд массового избавления от болванок, по той причине, что большинству не нравится занимать болванками и дисками место в квартире. Но, повторюсь, этот диск должен быть, как минимум рядом с корпусом компьютера, на случай если у него сотрётся по-какой либо причине ОС и он не сможет загружаться. А содержимое образа к тому же удовлетворяет ещё и требованию того, что если мы его запишем на перезаписываемую флешку (USB-Stick или SD-карту), то на незанятом месте в хвосте можно создать дополнительный раздел и скопировать туда все свои важные файлы с данными для последующего пост-инсталляционного восстановления.

Третьим важным моментом должно быть уже на диске наличие всех драйверов и микрокода (firmware) для любого типового современного персонального ПК. Как известно, ядро Linux и его модули содержат почти все широко известные вещи в основном проекте. Компоновка дистрибутива Debian на базе этого ядра соответствует целям не нарушения американского закона о распространении программного обеспечения (ПО). В-частности, многие корпорации требуют каким-либо образом накладывать юридические ограничения на копирование и исследования своих драйверов и firmware. Поэтому американцы избегают изготовления и распространения в своих корпорациях подобного рода носителей. В подавляющем же большинстве других стран такие действия или явно разрешены (редко), но чаще никак не регулируются, а значит - не запрещены. И вот для таких стран, в том числе России, целесообразно использовать неофициальную (unofficial) сборку с несвободным ПО (non-free) - английские аббревиатуры указывают на каталоги на, тем не менее, официальном сайте образов Debian. Загрузившись с этого носителя инсталляционный сценарий правильно обнаружит всё заковыристое оборудование, в том числе контроллеры жёстких дисков и адаптеры беспроводной сети Wi-Fi.

Понятно, что часть в имени amd64 указывает на архитектуру домашних современных компьютеров. Хотя для раритетов можно взять и i386, но их становится всё меньше и меньше, да и поддержка со стороны индустрии как программных так и аппаратных производителей тоже сходит на нет. Вариант с multiarch я рассматривать не стал - он хоть и под обе архитектуры 64 и 32-битные ПК но почему-то инженеры Debain там создали один CD образ - т.е. нужно для разработки или даже ещё какой нормальной деятельности дополнительные диски. Их файловые образы, конечно, имеются на сайте Debian, но это уже ущерб удобству и эталонности: всё поставить с одного носителя и не захламлять квартиру. Хотя если масштабы разработки или какой деятельности планируется увеличить, то имеет смысл и обзавестись разумным комплектом дисков (об этом - в дальнейших выпусках).

Комплект самосборки из исходников и прочие нужные для запуска программы с библиотеками

С первого Debian Firmware DVD1 эффективнее и быстрее всего поставиться в текстовом режиме не добавляя на этапе установки какие либо т.н. задания (tasks). Это сгуппированные по смыслу пакеты ПО. Например, "Desktop", "DNS Server"... В этом случае самая первая установка с DVD (или другого дистрибутивного накопителя) произойдёт быстрее всего и сразу же можно проверить запускаемость системы. Т.е. загрузчик должен отработать чётко: загружать как саму систему, так и если у вас таковые есть - соседние по разделам ОС. Обычно я ставлю две системы на машину: старую и новую. Со старой системы я мигрирую только нужные накопленные на ней данные и удачные конфигурационные файлы, проверяя осмысленно их на новой, а не как получится при обновлении системы поверх (на том же разделе) инсталлятором. До конца полной миграции обычно выходит ещё одна новая система или текущая устаревает (заканчивается публичная поддержка обновлений командой разработчиков-сопровождающих). И процесс установки новой версии ОС Debian соседний с рабочим раздел повторяется. Естественно после полной уверенности, что из этого раздела всё нужное выбранное в текущую ОС и/или архив.

Итак, после того, как мы убедились , что система грузится и грузит соседние системы - переходим к настройкам. Да: если соседние системы не видятся, то установите пакет os-prober:

# apt-cdrom add
# apt update && apt full-upgrade
# apt install os-prober
Как видно - сначала надо добавить командой apt-cdrom add в описание конфигурации /etc/apt/sources* ссылку на источник - DVD, а затем все текущие установленные в системе индексы (update) и собственно сами пакеты (full-upgrade). из репозитория. Такие же примерно действия надо делать при добавлении новых DVD для системы и при использовании Интернета.

Следующим (а может и даже первым) делом надо настроить комфортную для глаз и удобную для набора текста на национальном языке консоль. Это делается конфигурацией пакета console-setyp:

# dpkg-reconfigure console-setup
Я рекомендую шрифты семейства Terminus размером 28 условных экранных единиц (предпоследнее по величине значение). На современных широкоугольных мониторах всё равно уместится типовые 80 знакомест в строку, но напряжение с глаз существенно спадёт (чтобы не мучиться с очками).

Клавиатура уже должна быть настроена на этапе установки, однако, если этого ещё не было проделано, то нужно подобным же образом настроить пакет locales. А проверить под обычным пользователем это можно командой localectl, с примерно таким результатом:

$ localectl
   System Locale: LANG=ru_RU.UTF-8
       VC Keymap: n/a
      X11 Layout: us,ru
       X11 Model: pc105
     X11 Variant: ,
     X11 Options: grp:alt_shift_toggle

Ну всё: теперь можно заняться установкой и опробыванием самосборочной системы, а именно поставить пакет с именем build-essential точно так же, как и ставились пакеты ранее.

Компиляторы языков программирования Ассемблера, C и C++

Ассемблер сам по себе не входит в build-essential, но также, как и компоновщик (linker) входит в пакет binutils, также как и ряд других двоичных утилит, для работы с исполнимым кодом в соотв. и объектных файлах. Язык Си представлен стандартным базовым компилятором из сборного комплекта GCC (GNU Collection Compiler). И вот аналогичный пакет gcc зависит от пакета binutils, а значит поставится, т.к. пакетная система APT удовлетворяет все прописанные поддеживающими людьми зависимости.