Содержание
Операционная система Linux известна во всем мире. Чаще всего неопытные пользователи используют дистрибутив Ubuntu, т. к. именно он прост и бесплатен. Впрочем, хотя другие дистрибутивы тоже бесплатные, они пользуются меньшей популярностью. Достаточно сложной можно назвать установку Gentoo. Но с нашей инструкцией наверняка все получится.
Что такое Gentoo Linux?
Это дистрибутив, который известен благодаря широким возможностям, комплексности, возможности настройки. Но стоит отметить, что он не для всех, и при работе придется активно включать мозги, ведь без специализированных знаний не получится воспользоваться полным функционалом этой ОС. Часто придется обращаться к разного рода инструкциям, но это уже после. Важно помнить, что установка пакетов в Gentoo осуществляется из источников при помощи специального инструмента PORTAGE. Это сложнее, но зато пользователь может сам выбирать, какие пакеты и функции устанавливать.
В зависимости от объема сборки, установка может занять очень мало времени (пару минут), а может длиться днями.
Преимущества и недостатки
Считается, что именно Gentoo Linux является самым быстрым дистрибутивом. Но везде и всегда есть определенные недостатки. «Гента» (или «Дженту») относится к дистрибутивам Source-based Linux, отчего растет скорость работы. Но часто сэкономленное время приходится тратить на длительную установку (читай: компиляцию) пакетов. Одна из ключевых особенностей «Дженту» — это оптимизация под аппаратное обеспечение. Это достигается благодаря USE-флагам (о них будет информация ниже) оптимизации и сборкам программ из исходников, подключению/отключению разных модулей.
Ключевым плюсом дистрибутива является возможность сделать из него что угодно. Благодаря Portage, Gentoo может стать обычным сервером или рабочей станцией. Второй плюс — гибкость применения. Данный дистрибутив является мультиплатформенным и работает с любыми архитектурами процессоров. Система уже была успешно портирована на следующие архитектуры:
- X86.
- X64.
- ARM.
- PowerPc970.
- PowerPC.
- Dec Alpha.
- IBM/390.
- 68K.
- Sparc.
- PA-RISC.
- MIPS.
- SuperH.
- PowerPC G5.
Также Gentoo защищена от разного рода уязвимостей. Обновление пакетов происходит очень быстро, как и латание дыр уязвимостей. Есть множество сайтов с неофициальными сборками программ и официальных бинарных сборок.
В качестве недостатка укажем процесс установки Gentoo. Новичкам, которые ранее не имели опыта использования этого дистрибутива, будет сложно. Но благодаря инструкции все получится.
Как установить Gentoo? Инструкция
Для начала на компьютере должен быть установлен дистрибутив Ubuntu. Вам понадобятся права суперпользователя, поэтому убедитесь, что они есть. Также необходимо подключение к интернету.
Самый первый шаг — это установка в Gentoo chroot. Сделать это можно двумя способами:
- В командной строке прописать: sudo apt-get install dchroot debootstrap.
- С помощью Synaptic установить пакеты debootstrap и dchroot. Это нужно для того, чтобы ОС Linux думала, что ее «родной» каталог отличается от обычного.
Теперь нам нужно перераспределить разделы диска либо создать новые, если есть свободное место. Но работать с разделами нужно аккуратно, ведь есть риск потерять все данные. На многих форумах пишут, что предпочтительнее иметь много разных разделов. Как минимум нужен будет основной раздел (/), а также разделы /boot и /var. Хотя есть еще /swap (используется для подкачки) и домашний /home.
После создания новых разделов форматируем их. Для разделов /boot, /home, основной (/), /var нужно использовать файловую ext3 или reiser2.
Теперь создаем папки /mnt/gentoo. Для каждого созданного нами раздела необходима своя папка.
Монтируем сюда новые разделы. Для этого в командной строке прописываем:
- sudo mount /dev/sda5 /mnt/gentoo.
- sudo mount /dev/sda6 /mnt/gentoo/home.
Разделы sda5 и sda6 будут содержать корневой и домашний каталоги.
Обязательно проверьте, правильно ли настроена дата. Если нет, то с помощью команды и синтаксиса можно установить правильную дату: date MMDDhhmmYYYY.
Теперь открываем браузер и переходим на сайт загрузки дистрибутива. Там ищем подходящее зеркало для вашего местоположения.
Из директории releases/ia64/2008.0/stages загружаем tar-архив stage3. Теперь перемещаем архив в папку Gentoo. Делаем это с помощью команды: mv stage3*.bz2* /mnt/gentoo.
Переходим в данный каталог (cd /mnt/gentoo) и проверяем архив при помощи md5. Пишем в командной строке: md5sum -c stage3*.md5. Так вы сможете проверить, не поврежден ли архив и все ли с ним в порядке. Если вы не получите ответа ОК, то придется качать его повторно.
Переходим к следующему шагу установки и настройки Gentoo. Нужно извлечь файлы из архива. Используйте команду: sudo tar xvjpf stage3*.bz2 и ждите завершения.
Настройка Gentoo
Теперь у нас есть в разделе Gentoo основные программы. В обязательном порядке нам понадобится Portage — специальный инструмент для управления пакетами. Благодаря ему мы получим контроль над установленными программами. Для этого снова идем на сайт загрузки. В разделе snapshots ищем последний по дате добавления Portage. Качаем его и перемещаем в папку /mnt/gentoo. Удобнее всего просто прописать команду: tar xvjf /mnt/gentoo/portage-.tar.bz2 -C /mnt/gentoo/usr.
Что такое Portage?
Пару слов следует сказать об этом инструменте. Portage — это система, с помощью которой можно управлять пакетами в дистрибутиве. Она призвана упростить процедуру установки программ и исходных кодов. С ее помощью можно удалять пакеты, обновлять их, проводить синхронизацию по протоколу rsync. Как только Portage загружает файлы, система собирает программу, используя загруженные исходники, и оптимизирует ее.
На этом этапе устанавливаем compile flags. Открываем make.conf, который находится в каталоге /gentoo/etc. Используем обычный текстовый редактор. В документе make.conf.example описана инструкция с переменными make. Хорошо ознакомьтесь с ней. Используйте указанные переменные и конфигурационный файл для установки.
Нам следует убедиться, что настройки были перенесены из дистрибутива Ubuntu без изменений. Главное — это dns-настройка (sudo cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf) и система proc (sudo mount -t proc none /mnt/gentoo/proc).
Если с настройками все в порядке, переходим к chroot. Чтобы сделать его, нужно:
- Поменять корневой каталог. В командной строке пишем: sudo chroot /mnt/gentoo /bin/bash
- Обновить среду и дать понять терминалу, где он располагается. В командной строке: /usr/sbin/env-update.
- Поместить это в память: source /etc/profile.
С этого момента вы находитесь внутри системы Gentoo.
Компиляция ядра
Самый важный этап — это компиляция ядра — части системы, которая определяет, когда и какой программе давать доступ. Без ядра ни одна операционная система не работает. Также устанавливаем пакеты с rsync-сервера. Вводим для этого команду: emerge —sync. Для ясности предположим, что устанавливаться будет ядро версии 2.6. На этом этапе нужно объявить флаги USE, которые дают понять компилятору, какие опции и характеристики применять. Важно указывать правильные флаги, иначе результат может быть не вполне ожидаемым.
Каждый добавляемый флаг — это слово. Удаляемые опции обозначаются знаком «-» перед словом. К примеру, для установки и компиляции программ и опций с поддержкой ogg нам нужно просто добавить ogg. Если это нам не нужно, то пишем -ogg.
Чтобы понять, какие USE-флаги нужно выбирать, обязательно смотрите документацию Gentoo.
После выбора флагов открываем make.conf в каталоге /etc/ и вводим их.
Установка часового пояса
Следующий этап — установка часового пояса. Все они есть в каталоге /usr/share/zoneinfo. Переходим сюда, вводим команду ls и видим список доступных. Нужный нам часовой пояс копируем в /etc/localtime. Используем для этого команду: # cp /usr/share/zoneinfo/GMT /etc/localtime.
После настройки часового пояса можно проводить загрузку и компиляцию ядра. Вводим команду: # emerge gentoo-sources. Теперь самый сложный шаг — настройка ядра таким образом, чтобы оно имело поддержку нужных нам пакетов. Если ядро будет установлено неправильно, то нужные функции могут быть недоступными.
Запускаем:
- cd /usr/src/linux;
- make menuconfig.
Так мы попадаем в настройки ядра. Выбираем все нужные для загрузки системы драйверы. Нужно проверить, чтобы все они встраивались в ядро, иначе система банально не сможет загрузиться. Не забывайте включить поддержку вашей файловой системы. Выбирайте по возможности все нужные сетевые драйверы: беспроводной и локальной сети, а также тип и семейство процессора.
Теперь для начала компиляции вводим: make && make modules_install. Процесс займет некоторое время. Затем вводим: make -j2 && make modules_install. Образ ядра копируем в папку /boot.
Последнее — настройка модулей ядер. Чтобы найти все доступные модули, запустите команду: find /lib/modules/(kernel version)/ -type f -iname ‘*.o’ -or -iname ‘*.ko’. Добавляем из списка в папку /etc/modules.autoload.d/kernel-2.6 те, которые загружаются автоматически. На этом этапе установка Gentoo завершена. Вы можете приступать к работе с ОС.
Советы по установке KDE Gentoo
В процессе установки будут возникать проблемы. По-другому просто не может быть. Обязательно обращайтесь на форум по Gentoo для решения своих задач. В любом случае придерживайтесь данной инструкции.
Часто возникают споры о том, как установить Gentoo на UEFI. Важно, чтобы был создан раздел EFI. Он должен быть вариантом файловой системы FAT. В спецификации UEFI написано, что UEFI-firmware работает с FAT12, 16 и 32, однако рекомендуется применять систему FAT32.
Также в tar-архиве может отсутствовать группа и пользователь portage. При использовании schroot на хост-системе их нужно создать вручную. В этом случае файлы в каталоге /gentoo/etc и пароль будут перезаписаны (изменить их можно напрямую).
Многие любят Gentoo за ее универсальность. Используя портежи, можно сделать инструмент под любые задачи. И пускай вас не смущает то, что секретарь никогда не будет компилировать Firefox — Боже упаси ей дать возможность ставить софт! Что может быть лучше дистрибутива, установив который вам больше ничего не понадобится с ним делать! Представьте себе — 5-10 минут времени и вы получаете систему с необходимым набором софта, собранного, настроенного и оптимизированного по вашим предпочтениям. В этой статье я опишу процесс создания своей версии дистрибутива на основе Gentoo при помощи утилит Calculate 2.2. На выходе вы получите гибридный ISO диск для записи на CD/DVD или USB-Flash, полностью совместимый с Gentoo, поддерживающий установку на USB-HDD, USB-Flash, HDD с поддержкой LVM и Raid, файловой системой ext4, ext3, ext2, reiserfs, btrfs, xfs, jfs, nilfs2 или fat32. Статья в первую очередь адресована всем любителям Gentoo, системным администраторам, преподавателям компьютерных классов школ и вузов, а также всем любителям Linux. Все операции выполняются с правами пользователя root из консоли.
1. То что нам понадобится
Разумеется, у вас уже должен быть установлен Gentoo, либо любой Gentoo-based дистрибутив и настроен доступ к сети интернет. Все операции я выполнял из Calculate Linux Desktop 11.9 KDE 64 бит. Для начала установите пакеты calculate-assemble и calculate-builder. В Gentoo для этого понадобится подключить оверлей Calculate:emerge layman layman -a calculate emerge calculate-assemble calculate-builder
Теперь определитесь с тем, какую систему вы хотите собрать. Перед вами выбор базовых образов:
- Gentoo Stage3 — прожиточный минимум для начала сборки системы;
- Calculate Scratch Server (CSS) — по сути тот же Gentoo Stage3 с ядром, драйверами, загрузчиком, портежами и утилитами Calculate.
- Calculate Linux Scratch (CLS) — CSS + Xorg + wireless.
- Calculate Linux Desktop с рабочим столом KDE, Gnome или XFCE (CLD, CLDG, CLDX) либо Calculate Directory Server (CDS).
В зависимости от задачи, загрузите последний Stage-архив Gentoo или Stage-образ Calculate и поместите в директории /var/calculate/remote/stages и /var/calculate/linux соответственно:cd /var/calculate/remote/stages wget mirror.yandex.ru/gentoo-distfiles/releases/x86/current-stage3/stage3-i686-20111018.tar.bz2
илиcd /var/calculate/linux wget mirror.cnet.kz/calculate/CLDX/stages/i686/cldx-20111024-i686.iso
Stage образ Calculate Linux включает дерево портежей. По сути это одно из основных отличий образа Calculate от Gentoo Stage4. Собирая систему из Gentoo Stage, вам также понадобится загрузить портежи в директорию /var/calculate/remote/snapshots:cd /var/calculate/remote/snapshots wget mirror.yandex.ru/gentoo-distfiles/snapshots/portage-20111024.tar.bz2
Обратите внимание, версии фалов постоянно обновляются. В этой статье я остановлю свой выбор на CLDX 32 бит по следующим причинам:
- Дистрибутив уже содержит большинство необходимых программ;
- Нет привязки к Gnome/KDE;
- XFCE включает несколько небольших пакетов и при желании быстро удаляется.
2. Подготовим систему к сборке
Для подготовки системы к сборке служит утилита cl-assemble. Вы можете воспользоваться любым из доступных профилей. В профилях Calculate Linux флаги подобраны с учётом используемого рабочего стола. CLD оптимизирован с учётом использования Qt/KDE, CLDG — Gtk/Gnome, XFCE — Gtk. Профиль CLDX идеально подойдет, если вы не хотите использовать ни KDE, ни Gnome. Если в качестве профиля указать «CLDX», программа попросит более точно ввести его название: Вам также понадобится указать раздел для установки. Это может быть либо раздел жесткого диска (10-15 Гб), либо директория. В случае использования директории, будет тратиться дополнительное время на удаление старых файлов. По умолчанию утилита использует Gentoo Stage3 образ и свежие портежи: Укажем, что мы хотим взять 32-битный образ CLDX, свежую версию которого можно скачать отсюда mirror.cnet.kz/calculate/CLDX/stages/i686. Для этого понадобится правильно указать профиль и, в случае если мы работаем в 64-битной системе, указать, что мы хотим использовать архитектуру i686:cl-assemble -p desktop/CLDX/x86/binary -d /dev/sda2 --source=CLDX --march=i686
На моей машине вся подготовка заняла менее 10 минут:
3. Обновим систему
Для сборки системы служит утилита cl-make. Обратите внимание на несколько параметров. Если вы хотите собрать систему со Stage3 — используйте опцию сборки системы «-m» (или «—make»), если из образа Calculate — опцию обновления системы «-u», (или «—update»). Обратите внимание на опцию «-V» (или «—withvideo») для копирования проприетарных видеодрайверов. Копирование без установки пресекает нарушение лицензии GPL, при этом у вас остаётся выбор проприетарного видеодрайвера, который будет инсталлирован в систему во время процесса загрузки.cl-make -u -V
Выполним обновление: В приведенном примере я не указывал собираемый профиль. Его следует вводить в случае, если вы ставите на сборку несколько систем одновременно. Например, 32 и 64 битную версии. В этом случае профиль можно ввести как «-p amd64» и «-p x86». Путем сравнения собираемых версий, программа попытается определить нужный профиль. В моем случае потребовалось обновить около 40 пакетов. Свои действия утилиты Calculate отписывают в файл /etc/calculate/assemble.env: Некоторые значения, например rsync-сервер портежей, доступные разделы, можно прописать в переменных утилит. Пример с реального сервера сборки: После указания доступных разделов, передавать параметр раздела сборки уже не обязательно. Я успел написать этот текст пока система обновляется. Мне попались под обновление сразу gtk с python, лучше бы я взял сегодняшний образ. Несмотря на то, что я выбрал бинарный профиль, компиляция идет из исходников. Пойду налью себе кофе 🙂
4. Внесем изменения
Наконец добрались до самого интересного. Что мы можем изменить:
- состав пакетов;
- флаги сборки;
- настройки программ;
- настройки рабочего стола пользователей;
- темы и т.п.
Как вы могли заметить, образ развернулся в директорию /mnt/calculate-desktop-CLDX-x86-binary/. Используйте этот путь для внесения изменений. На скриншотах видно, что с развернутой системой производится некоторая настройка. Собственно все шаблоны настройки можно посмотреть в директории /usr/share/calculate/templates/assemble/. Важно вносить изменения так, чтобы не вызывать конфликт настроек. Где-то можно создать свои шаблоны изменений, где-то использовать альтернативные файлы. Рассмотрим теперь подробней.
4.1. Флаги сборки
Управление параметрами сборки пакетов осуществляется через USE-флаги. Урезая зависимости, вы можете добиться нескольких преимуществ:
- ускорить выполнение программ;
- повысить защищенность системы;
- избавиться от лишних зависимостей;
- уменьшить требование к дисковому пространству.
Давайте посмотрим на содержимое переменной USE. Для этого в собираемой системе нужно выполнить следующую команду:linux32 chroot /mnt/calculate-desktop-CLDX-x86-binary /bin/bash -c "emerge --info"
Обратите внимание, я использовал вызов chroot через утилиту linux32, т.к. я выполняю сборку 32-битной системы из-под 64-битной. В противном случае в утилите linux32 нет необходимости. Флагов будет великое множество. Более подробно о них можно узнать, почитав следующие описания: общие — /usr/portage/profiles/use.desc и индивидуальные — /usr/portage/profiles/use.local.desc. Для внесения изменений в флаги применительно ко всем пакетам сразу используется файл make.conf. В процессе сборки содержимое файла /etc/make.conf будет переписываться, поэтому для внесения изменений, мы рекомендуем использовать альтернативный путь — /etc/portage/make.conf. В качестве примера, давайте исключим поддержку адресации ipv6 во всех пакетах, для этого добавьте в файл /mnt/calculate-desktop-CLDX-x86-binary/etc/portage/make.conf следующую строчку:USE="-ipv6"
Посмотрим что получится. В этот раз запустим обновление с флагом «-U», вместо «-u». Это позволит сэкономить время на синхронизацию портежей. Выполним ‘cl-make -U -V’: Примечание. Так как при обновлении пакетов был пересобран Xorg сервер, в конце программа выполнит пересборку его модулей. Если вы будете запускать несколько сборок подряд, анализируя файл emerge.log, программа будет каждый раз пересобирать драйвера Xorg-сервера. Чтобы этого не происходило, вы можете удалить файл var/log/emerge.log в директории собираемой системы. Во время запаковки системы в образ, этот файл будет в любом случае удален.
4.2. Флаги и маски пакетов
Для изменения флагов и масок используются следующие пути: etc/portage/package.use, etc/portage/package.keywords, etc/portage/package.mask, etc/portage/package.unmask. Менеджер пакетов emerge 2.2 умеет размаскировывать зависимости. Рассмотрим размаскировку пакетов, на примере браузера Firefox. Для начала сменим корневой каталог:linux32 chroot /mnt/calculate-desktop-CLDX-x86-binary env-update && source /etc/profile
Определим правильное название пакета firefox и узнаем список доступных версий:eix firefox * www-client/firefox Available versions: *3.6.12 3.6.20 ~3.6.21 ~3.6.22 ~7.0.1-r1
Стабильная версия пакета 3.6.20. Размаскируем версию 7.0.1-r1: Для обновления настроек используем утилиту dispatch-conf вместо etc-update: Утилита обновит маски и USE-флаги. В обоих случаях нажмите «u» для принятия изменений. Здесь же вы можете проверить и выписать названия других пакетов, необходимых для сборки. В конце, чтобы проверить все зависимости, выполните:emerge -p пакет1 пакет2 ..
4.3. Добавление пакетов
Все устанавливаемые пакеты, за исключением зависимостей, прописываются в файле ‘world’. Если вы ставите пакет, он, вместе с зависимыми библиотеками, устанавливается в систему. Если какие-либо библиотеки в последствии пакету уже не понадобятся, команда ’emerge —depclean’ их удалит. Поэтому важно, чтобы все пакеты (без зависимостей), которые вы установили дополнительно, были прописаны в файле ‘world’. Удалить их можно опять же командой ’emerge —unmerge’ с указанием пакета(ов) или вручную, отредактировав файл и выполнив ’emerge —depclean’. Для построения дерева зависимостей утилиты Calculate используют мета-пакеты, в основе которых лежит app-misc/calculate-meta. Посредством USE-флагов строятся всё дерево зависимостей. Так как в процессе сборки вы могли устанавливать для проверки софт, файл var/lib/portage/world перед запаковкой будет содержать только один этот мета-пакет. Для того, чтобы добавить свои пакеты в дистрибутив, в портежах есть замечательный инструмент — сеты. При помощи сетов вы сможете подготовить свои тематические подборки программ. Сеты поддерживают вложения, что тоже очень удобно. Вы можете отредактировать свой список пакетов, воспользоваться сетом custom, находящемся в фале /etc/portage/sets/custom@, вписав в него строчку:www-client/firefox
Либо создать новый сет с другим именем, например ‘web’, вписав в него пакет, а в файле ‘custom’ указать ссылку на него:@web
Таким образом, сет может содержать как вложенные сеты, так и пакеты. Во время обновления системы программы из сета будут установлены, т.к. сет прописан в своем world-файле, находящемся в /var/lib/portage/world_sets.
4.4. Удаление пакетов
Если очистить файл world и выполнить ’emerge —depclean’, мы получим Stage3-образ. Т.е. прожиточный минимум всё же имеется и называется он ‘system’. Обновить его можно командой ’emerge system’, либо используя сет — ’emerge ‘. Мета-пакет calculate-meta строит зависимости исходя из выбранного профиля. Используя USE-флаги calculate_nowireless, calculate_nonetwork, calculate_noxfce и т.п., можно исключить часть зависимостей. Полный список флагов можно посмотреть в файле /var/lib/layman/calculate/profiles/desc/calculate.desc. Для примера, давайте отключим поддержку беспроводных устройств. Для этого отредактируете файл /etc/portage/make.conf, вписав в него:CALCULATE="nowireless"
5. Сохраним изменения
Мы добавили браузер firefox, удалили поддержку беспроводных устройств, давайте теперь обновим образ:cl-make -U -V
Пакет firefox будет установлен, а лишние зависимости удалены:
5. Создадим новый образ
Для создания образа используйте утилиту cl-image:cl-image --live iso
Опция «—live» позволит выиграть несколько секунд при загрузке с LiveCD или USB-Flash. Используйте эту опцию, если вы используете свежий Stage-образ Calculate Linux.
6. Завершение сборки
В случае необходимости, либо по завершению установки можно прервать сборку выполнив:cl-make --break
7. Итог
Для эксперимента я выбрал дистрибутив Calculate Linux Desktop XFCE и воспользовался бинарным профилем CLDX. Все дальнейшие обновления системы я буду выполнять с учётом своих USE-флагов, командой ’emerge -uDNa world’. В случае, если флаги будут полностью совпадать, пакет будет установлен из бинарного репозитория, если будут различия — пакет соберется на моей машине. Я получил образ с необходимым мне набором программного обеспечения. Не все из описанных возможностей я задействовал. Например в дистрибутиве можно подготовить шаблоны настройки рабочего стола пользователя (см. habrahabr.ru/blogs/linux/129658). В следующей статье, если будет достаточный интерес, я опишу как можно получить тот же результат более наглядно и без использования жесткого диска 😉Используемые источники:
- https://fb.ru/article/320988/ustanovka-gentoo-linux—poshagovaya-instruktsiya
- https://habr.com/post/131234/