Пятница, 26.04.2024, 02:33 | Приветствую Вас Гость

Information inovation!

Главная » Статьи » Компы! » linux

Gentoo Linux: установка и настройка
О Gentoo Linux
Gentoo Linux - один из типичных представителей т.н. Source Based дистрибутивов. То есть систем, основанных не на прекомпилированных бинарных пакетах, а собираемых непосредственно из исходных текстов. Gentoo относительно молод, но известностью сравнялся с такими ветеранами дистростроения, как Red Hat или Debian. 
Gentoo создан в 2001 г. Дэниелем Роббинсом, бывшим до того одним из участников проекта Linux Stampade, а ныне пошедшим на службу классовому врагу. Однако сам дистрибутив от этого не пострадал, так как поддерживается интернациональной командой разработчиков из самых разных стран. Официальный сайт проекта - http://www.gentoo.org.
С самого начала Gentoo являл собой синтез наиболее передовых технологий Linux с традиционными достижениями BSD-систем (в первую очередь - FreeBSD). В частности, в нем приняты сценарии начальной загрузки системы в BSD-стиле - большинство популярных дистрибутивов Linux наследуют схему инициализации системы, унаследованную от Unix System V (именно она была принята за основу Линусом Торвальдсом при создании своего ядра).
Главная особенность Gentoo также идейно унаследована от FreeBSD. В последней, как известно, только базовые компоненты (т.н. Distribution) устанавливаются из прекомпилированных пакетов. Для установки же пользовательских приложений предназначена т.н. система портов. Это - набор средств для автоматизированного получения из Сети (с мастер-сайтов разработчиков или их официальных зеркал) исходных текстов программ, их конфигурирования, компиляции, установки и регистрации в специальной базе данных. Конечно, и FreeBSD поставляется с наборами прекомпилированных пакетов (packages), однако роль их сугубо вспомогательная.
В Gentoo концепция портов (именуемых здесь портежами - Portages) проводится еще более последовательно, чем во FreeBSD. Поскольку здесь этим путем можно установить (или - обновить) не только прикладные программы, но и все базовые компоненты системы, вплоть до ядра, компилятора gcc и главной системной библиотеки glibs.
Система портежей Gentoo позволяет, во-первых, очень гибкое конфигурирование системы, с подбором только необходимых (и осознанно выбираемых) приложений. Во-вторых, она открывает путь для оптимизации системы не только под различные архитектуры (а на данный момент дистрибутивом поддерживаются, кроме i86, также Sparc, PowerPC и Alpha), но и под конкретные типы процессоров. Кроме того, в ней предусмотрены средства генерации бинарных пакетов (аналог packages FreeBSD), которые могут быть установлены на целевую платформу, отличную от host-машины. И, более того, пакеты эти также могут быть оптимизированы с учетом особенностей целевой (например, более слабой) машины.
Дополнительным плюсом дистрибутива Gentoo является его прекрасная документированность. На сайте проекта доступны Gentoo Handbook и множество более частных источников информации, ряд из которых переведен на русский язык.
Название дистрибутива (произносится как "джен-ту") может показаться несколько странным. Но объясняется просто - это один из видов пингвина (научное название Pygoscelis papua), обитающий на Циркум-Антарктических островах (Фолклендских, Кергелен, Южная Георгия).
В специальной литературе можно прочитать, что джен-ту отличается небольшим размером и стремительностью. Именно эти его качества и воплощены в дистрибутиве Gentoo.
Получение дистрибутива
Все версии дистрибутива Gentoo доступны на основном сервере проекта и на ряде его зеркал. Скачивание - по протоколам http и ftp, разумеется, свободно и бесплатно. Конечно, за некоторую сумму можно заказать и CD-вариант, но в наших условиях это не актуально.
Процесс получения Gentoo имеет некоторые особенности, отличающие его от получения (приобретения) любого пакетного дистрибутива. Если для последнего достаточно скачать iso-образы CD-дисков и записать их на соответствующие носители, продуктивное использование Gentoo требует выхода в Интернет. Правда, не обязательно с той же машины, на которую он устанавливается - вполне допустима ситуация, когда необходимые компоненты получаются, например, по рабочему каналу, а сама система устанавливается дома.
И так, первое, что необходимо для установки - скачать образ инсталляционного диска. Объемы образов - достаточно скромны, обычно около 200 Мбайт (в зависимости от версии). Образы эти являют собой Live CD - то есть фактически полноценную Linux-систему, запускаемую с компакт-диска. И включающую набор не только системных утилит, но и пользовательских приложений.
Образ инсталляционного диска обычно содержит все необходимое для установки. Однако в некоторых версиях его оказывается недостаточно - потребуется еще три архива (*.tar.bz2), содержащие (в прекомпилированном виде) компоненты базовой системы. Первый из них (файл stage1-*, объемом около 10 Мбайт) специфичен для архитектуры (i86, PowerPC, Sparc и т.д.). Два других тарбалла (stage2-* и stage3-*, около 50 и 80 Мбайт, соответственно), кроме этого, для PC-архитектуры представлены в нескольких вариантах, оптимизированных под конкретные процессоры: от i486 до Pentium-4 (включая и Athlon). Ясно, что скачиванию подлежат только тарбаллы, соответствующие реалиям пользователя.
Далее, для установки пре-релиза потребуется скачать архив системы портежей - один из файлов вида portage-200XXXXX.tar.bz2, расположенных в каталоге ~/gentoo/snapshots (в стабильной версии текущий архив портежей размещен на установочном диске). Как легко понять, цифры в имени файла соответствуют дате создания архива (а обновляется система портежей чуть ли не ежедневно), и лучше выбирать последний по времени.
И наконец, при установке на машину без выхода в сеть неплохо заблаговременно скачать архивы исходных текстов базовых компонентов системы - об их составе я скажу несколько позже. И не обязательно с сайта разработчика: исходники всех портированных в Gentoo программ можно найти на сайте проекта в каталоге ~/gentoo/distfiles (или ~/gentoo/gentoo-sources, содержание их идентично). Наличие их очень упростит жизнь, однако, как будет показано ниже, обойтись без них можно.
А вот без чего никак не обойтись - это без одного из дополнительных носителей, на котором будут размещены скачанные компоненты. При установке на "чистую" машину ими могут быть: второй CD (при наличии двух приводов, например, пишущего и читающего) или Zip (как нетрудно подсчитать - желательно 250-мегабайтного объема, иначе их придется менять в процессе установки). Можно также временно подцепить дополнительный винчестер с уже существующим разделом и какой-либо файловой системой (из числа поддерживаемых) на нем. Ну и заблаговременно переписать на эти носители все требуемые файлы - тарбаллы stage2-*, stage3-* и portage-* - обязательно, прочие - по возможности и желанию.
К слову сказать, на тот же носитель хорошо поместить и инструкцию по установке с сайта Gentoo (добавлю, и все прочие файлы документации - тоже, отнюдь не повредят). Или, по крайней мере, держать ее распечатку под рукой - зело способствует. И можно приступать к установке.
Помещать тарбаллы базовой системы и системы портежей, а также документацию, можно где угодно - хоть в корне файловой системы дополнительного накопителя. А вот под архивы исходников лучше создать на нем отдельный каталог, например, src - ниже будет ясно, почему.
Загрузка системы и первые шаги
Редкий инсталляционный диск Linux-дистрибутива ныне не является загрузочным. И Gentoo тут - не исключение: чтобы загрузиться с любого из вышепоименованных образов, достаточно поместить диск в привод, нажать на Reset, выставить соответствующие опции в Setup BIOS и подождать некоторое время, по возможности вникая в появляющиеся сообщения об имеющемся оборудовании (впрочем, все эти сведения можно будет получить и потом - командой dmesg.
Ожидание завершается выводом приглашения на ввод пользовательского имени (login), ответом на что служит волшебное слово root, а затем и пароля - на это отвечаем просто нажатием клавиши Enter. За этим появляется приглашение командной строки - и можно приступить к дальнейшим действиям.
Они не вполне тривиальны. Еще одна отличительная особенность дистрибутива Gentoo, о которой я не упомянул ранее - полное отсутствие какого-либо инсталлятора, все манипуляции по установке осуществляются прямыми директивами из командной строки и прямым редактированием конфигурационных файлов в текстовом редакторе. Что начинающего (да и не очень начинающего) пользователя может просто обескуражить.
Однако все не так страшно. Во-первых, в нашем распоряжении - вышеупомянутая подробная, буквально пошаговая, инструкция по установке. А во-вторых (и об этом также говорилось ранее), установочный диск Gentoo - не просто загрузочный, а так называемый Live CD. То есть просто-напросто загружающий полноценную рабочую Linux-среду с корневой файловой системой в оперативной памяти (способной монтировать в себя файловые системы любых устройств). И потому в процессе установки в руках пользователя - вся мощь ОС Linux, включая командную оболочку bash и 6 виртуальных консолей (авторизоваться в любой из них можно точно так же, как и в первой - вводом имени root без пароля). Ну а в третьих - загружаемое с CD Linux-ядро собрано с поддержкой абсолютно всех опций, которые могут потребоваться при установке (встроенной в ядро или модульной).
И потому первое действие после старта системы - загрузка всех необходимых модулей. Это будут модули поддержки:
• устройств хранения данных - SCSI-адаптеров, контроллеров IDE-RAID, Zip-приводов (atapi-floppy, в терминологии Linux), короче, всего, на что мы собираемся устанавливать систему или считывать устанавливаемые компоненты;
• файловых систем: это потребуется, только если устанавливаемые тарбаллы и архивы исходников размещены на разделе с файловой системой FATxx - поддержка всех родных (native) файловых систем Linux, включая XFS, встроена в установочное ядро);
• сетевого адаптера - если таковой, вместе с постоянным подключением к Сети, имеется;
• соединения ppp - это даст возможность использовать при установке модемное подключение к Сети.
При этом возможно, что многие из перечисленных устройств (в частности, сетевые карты) будут корректно определены при загрузке системы и соответствующие модули загрузятся автоматически, что проверяется командой

$ modprobe имя_модуля
В остальных случаях это придется сделать вручную, командой

$ insmod имя_модуля
Имена поддерживаемых модулей можно посмотреть (авторизовавшись в следующей виртуальной консоли) в соответствующих подкаталогах каталога /lib/modules/2.6.XX.X/kernel/ - ведь наша корневая система пока находится в оперативной памяти.
Следующий шаг - настройка сетевого соединения (при постоянном подключении). Если машина использует динамически выделяемый IP-адрес, назначаемый через DHCP-сервер (а в большинстве случаев это так и есть), делается это элементарно просто, командой

$ dhcpcd eth0
Все остальное происходит почти автоматически. При статическом IP-адресе потребуется ручная настройка, но на этом я останавливаться не буду (все вопросы конфигурирования сети очень подробно рассмотрены в руководстве).
При отсутствии постоянного подключения необходимо смонтировать носитель со скачанными ранее архивными файлами. Для этого в каталоге /mnt создаем соответствующую ситуации точку монтирования, например,

$ mkdir /mnt/zip
для Zip-диска, или

$ mkdir /mnt/cd2
для второго CD (каталог для установочного CD - /mnt/cdrom, - там уже имеется, и диск этот в него уже смонтирован). А теперь даем команду монтирования. Для zip-диска "из коробки" она будет выглядеть так:

$ mount /dev/hdd4 -t msdos /mnt/zip
где, кроме явного указания файловой системы, обращаю внимание, что файл устройства - именно /dev/hdd4: при фабричной разметке на zip-дисках создается один, но четвертый, первичный раздел. И еще одна тонкость: вследствие особенностей реализации файловой системы devfs в дистрибутиве Gentoo, zip-диск должен находиться в приводе в момент старта системы - иначе соответствующий файл устройства просто не будет создан.
Аналогичны и действия по монтированию второго CD или дискового раздела. Единственно, что в этом случае может не потребоваться явного указания на тип файловой системы (хотя и вреда от него, конечно, не будет).
Завершив монтирование носителя установочных файлов, следует перво-наперво активизировать еще одну виртуальную консоль и вывести на нее инструкцию по инсталляции - дабы сверять с ней все дальнейшие шаги, как со Священным писанием:

$ lynx /mnt/mount_point/build.html
При наличии модемного подключения к Сети можно настроить и его - даже если все требуемые файлы, включая исходники базовой системы, размещены на смонтированном носителе, не исключено, что в процессе их синхронизации может потребоваться какой-либо специфичный для Gentoo патч, скачать который по модему - дело пары минут, а то и секунд. Хотя должен предупредить, что установить базовую систему чисто по модему (что вполне реально, скажем, для FreeBSD) - не то что невозможно, но, скажем так, весьма долго и накладно для кармана.
Для настройки модемного соединения проще всего использовать программу wvdial, находящуюся на Live CD (в каталоге /usr/bin). Подгрузив модули поддержки протокола ppp (общий, ppp_generic, и асинхронного соединения, ppp_async), запускаем программу

$ wvdialconf /etc/wvdial.conf
Она автоматически определит порт, к которому подключен модем, определит его скорость и создаст строку инициализации, занеся все эти сведения в файл, указанный в качестве аргумента. В результате содержание его примет вид, подобный следующему:

[Dialer Defaults]
Modem = /dev/ttyS0
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ISDN = 0
Modem Type = Analog Modem
Пользователю остается только добавить туда строку, определяющую способ дозвона. По умолчанию он - тоновый, тогда как в наших условиях, скорее всего, потребуется импульсный дозвон:

Dial Command = ATDP
Остальное же - обычная информация: телефон провайдера

Phone = 
имя пользователя и его пароль

Username = 
Password = 
Теперь, проследив, чтобы в файле /etc/hostname наличествовала единственная строка

localhost
подкорректируем содержимое файла /etc/resolv.conf: значение строки nameserver должно соответствовать реальному IP-адресу DNS-сервера провайдера. И теперь при необходимости для дозвона можно использовать команду

$ wvdial
А больше на этапе установки нам ничего и не требуется - все остальное сделает система портежей.
Возникает вопрос: а каким образом редактировать все вышепоименованные конфигурационные файлы (и те файлы, которые потребуется редактировать в дальнейшем)? Этой цели в дистрибутиве Gentoo штатно служит текстовый редактор nano - очень простой в освоении и обращении, снабженный встроенной справкой и обеспечивающий достаточные базовые функции редактирования. Нужно только не забывать запускать его в форме

$ nano -w имя_файла
где опция -w отключает режим переноса строк - конфигурационные файлы на это, как правило, реагируют болезненно. Поскольку редактор понадобится нам за время установки неоднократно, резонно было бы сразу определить псевдоним:

$ alias nano='nano -w'
благо, как уже говорилось, в нашем распоряжении полнофункциональная оболочка bash.
Установка - первый этап
Вот теперь подготовительные мероприятия закончены - можно начинать собственно установку, начальный этап которой происходит внутри корневой файловой системы Live CD. Первый шаг на этом этапе - создание дисковых разделов и файловых систем на них. Эти вопросы были предметом детального рассмотрения в моей статье, подготовленной к печати (Открытые системы, #11, 2002) и потому здесь я на них остановлюсь лишь вкратце.
Для первой операции можно использовать одну из программ - fdisk, cfdisk, parted, все они имеются на Live CD. А созданию файловых систем служат специфичные для них утилиты: mkefs для ext2fs, mkfs.xfs - для XFS, mkswap - для раздела подкачки, и так далее. Рекомендуемая в руководстве схема разбиения для одного диска (первого на первом IDE-канале) приведена в табл. 1.
Таблица 1. Рекомендуемая схема разбиения диска для установки Gentoo
Раздел Размер Тип Устройство
Загрузочный 100 Мбайт ext2fs или ext3fs /dev/hda1
Раздел подкачки 128 Мбайт=<2*RAM=<2 Гбайт Linux swap /dev/hda2
Корневой раздел 1,5 Гбайт минимум XFS, ext3 - рекомендуются /dev/hda3
Разумеется, эта рекомендация - приблизительна. Так, 1,5 Гбайт для корневого раздела - лишь абсолютно необходимый минимум. При интенсивном использовании системы портежей цифру эту нужно увеличить в два-три раза, а то и более. Или выделить файловую систему /usr в отдельный раздел. Кроме того, на мой взгляд, абсолютно необходимо создать отдельный раздел под файловую систему /home - для домашних каталогов пользователей. А в некоторых случаях целесообразно выделение и каталогов /var и /tmp.
Если под установку Gentoo предполагается задействовать более одного физического диска, можно прибегнуть к таким современным технологиям, как программные RAID-массивы или система управления логическими томами (LVM - Logical Volumes Manager). Рассмотрение их далеко выходит за рамки настоящей статьи. Скажу только, что первая технология способствует повышению быстродействия дисковых операций или (иногда - и) сохранности данных. А система LVM позволяет достичь непревзойденной гибкости в управлении уже созданными и смонтированными файловыми системами (в частности, динамического перераспределения занимаемого ими дискового пространства). И, разумеется, на установочном Live CD содержится весь необходимый инструментарий для работы с программными RAID-массивами и системой LVM. Впрочем, нет препятствий и к использованию дисков, подключенных к аппаратному контроллеру IDE-RAID, хотя это потребует некоторых дополнительных действий (детали - в руководстве по установке).
Следующий шаг - монтирование созданных файловых систем в структуру корневой системы (напомню, она - в оперативной памяти). Но сначала - активизируем раздел подкачки:

$ swapon /dev/hda2
что будет способствовать быстродействию при всех дальнейших манипуляциях, особенно при не очень большом объеме ОЗУ.
Теперь необходимо создать точку монтирования для той файловой системы, которая в дальнейшем станет корневой:

$ mkdir /mnt/gentoo
и смонтировать в нее соответствующий раздел:

$ mount /dev/hda3 /mnt/gentoo
Если создавались отдельные разделы под каталоги /boot, /usr, /home - они тоже потребуют своих точек монтирования, теперь уже относительно каталога /mnt/gentoo:

$ mkdir /mnt/gentoo{/boot,/usr,/home}
и выполнить для них команды монтирования:

$ mount /dev/hda1 /mnt/gentoo/boot
и так далее. Теперь командой 

$ cd /mnt/gentoo/
переходим в будущий корневой каталог Gentoo и вспоминаем наконец о наших архивных файлах. Разворачиваем тарбалл первой очереди, находящий на инсталляционном CD:

$ tar -xvjpf /mnt/cdrom/nocompress/stage1-x86-*.tar.bz2
Здесь и далее следует обратить внимание на опцию -p в командной строке: она необходима для сохранения оригинальных атрибутов доступа к файлам, извлекаемым из архива. По самой же команде разворачивается иерархия каталогов в дереве /mnt/gentoo (/mnt/gentoo/etc, /mnt/gentoo/proc и т.д.) и устанавливается некий минимум прекомпилированных программ, необходимых для дальнейшей инсталляции, в том числе и ftp-клиент wget. И действительно, при постоянном подключении к Сети более ничего не потребуется - можно переходить к подготовке смены корневого каталога. Однако тем, кто не может им похвастаться, предварительно придется распаковать два оставшихся тарбалла, stage2* и stage3*.
Делается это точно так же, как и развертывание первого, только пути к соответствующим файлам нужно указать те, что соответствуют их реальному расположению, например:

$ tar -xvjpf /mnt/zip/stage2*.tar.bz2
и так далее. После этого мы имеем в каталоге /mnt/gentoo тот самый набор прекомпилированных библиотек, утилит и приложений, который объединяется понятием base Linux. И, соответственно, морально готовы к тому, чтобы сделать каталог /mnt/gentoo корневым.
Этап второй - подготовка к смене корня
Однако этот ответственный шаг требует некоторых подготовительных мероприятий - ведь после него все остальные ветви нынешнего корневого каталога станут недоступными. Правда, только с текущей, первой, консоли - во всех прочих сеансах корневым останется каталог в оперативной памяти.
Для начала, чтобы не делать двойную работу, скопируем настроенные нами конфигурационные файлы - ведь и они пока существуют только виртуально:

$ cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
$ cp /etc/hostname /mnt/gentoo/etc/hostname
$ cp /etc/wvdial.conf /mnt/gentoo/etc/wvdial.conf
Теперь воспользуемся замечательным свойством современных ядер Linux - возможностью доступа к одной и той же файловой системе через разные точки монтирования. И смонтируем таким образом файловую систему процессов (она, как ясно из названия, представляет протекающие в системе процессы в виде файлов):

$ mount -o bind /proc /mnt/gentoo/proc
К слову сказать, таким же образом можно поступить и с тем носителем, на котором у нас размещены архивы системы портежей и исходников (если последние мы туда помещали). А можно, просто размонтировав его (доступ к ним из виртуального корня Live CD больше не обязателен), смонтировать заново - но уже относительно будущего нового корня:

$ mount /dev/hdd4 /mnt/gentoo/mnt
Ведь в нем развернута собственная корневая система, имеющая все положенные компоненты. Правда, в этом случае мы потеряем доступ к инструкции по установке - а она нам еще потребуется. Вообще говоря, обойтись с этим носителем можно самыми разными способами - например, не перемонтируя его, просто обращаться с других виртуальных консолей. Я опишу самый, на мой взгляд, удобный.
Не предпринимая никаких размонтировочных действий, переходим в каталог /mnt/gentoo/usr (таковой ведь у нас тоже имеется). И из него разворачиваем архив портежей, точно так же, как мы это делали для основных тарбаллов:

$ tar -xvjpf /mnt/zip/portage*.tar.bz2
Если исходников на вспомогательном носителе нет - можно оставить его в покое, нужды в нем больше не возникнет. Если же исходники имеются - создаем в новообразованном каталоге /mnt/gentoo/usr/portage подкаталог distfiles и копируем в него все наши архивы исходных текстов:

$ cp /mnt/zip/src/* /mnt/gentoo/usr/portage/distfiles
Теперь они находятся именно там, где их ожидает встретить система портежей, прежде чем обращаться к Сети (и выдавать сообщение об ошибке при отсутствии подключения). А дополнительный носитель оставляем смонтированным - чтобы подсматривать в документацию через другой виртуальный терминал.
Теперь все готово к волнующему моменту - смене корневого каталога. Итак, командой

$ chroot /mnt/gentoo /bin/bash
объявляем каталог /mnt/gentoo корнем, одновременно запуская новый экземпляр командной оболочки (уже из нового источника). Теперь пересчитываем пути к системным библиотекам

$ env-update
ответом на что будет сообщение

Regenerating /etc/ld.so.cache...
И устанавливаем для нового экземпляра оболочки переменные окружения:

$ source /etc/profile
Все, мы - внутри системы Gentoo Linux, причем уже очень даже реальной, не имеющей никакого отношения к виртуальной системе, загруженной с Live CD. И далее все пути к файлам в абсолютной форме (типа /usr/portage) будут указываться с учетом того, что отныне наш / - это не что иное, как /mnt/gentoo.
Третий этап - внутри Gentoo
Итак, мы уже как бы установили операционную систему Gentoo Linux (без перезагрузки, прошу обратить внимание). И вот тут-то и начинается самый охмурежь - рядом планомерных и последовательных действий мы можем после перезагрузки (ну куда же без нее) получить не просто полнофункциональную и аккуратно настроенную, но, не побоюсь громких слов, - идеально оптимизированную систему.
Требуемые к тому действия описываются в предположении: а) установки всех трех тарбаллов и системы портежей, б) помещения в каталог /usr/portage/distfiles (уже относительно нового корня - /mnt/gentoo) некоторого набора минимально необходимых исходников, и в) хоть какого-то соединения с Интернетом (на крайний случай). Без последнего можно, как я неоднократно говорил, и обойтись - но тут уж потребуется ювелирная точность в выборе предварительно скачанных (и ныне помещенных в /usr/portage/distfiles) архивов исходников.
В чем смысл этих действий? Да ни много, ни мало, как в полной пересборке базовой системы (те, кто имел дело с FreeBSD, неизбежно вспомнят тут make world) и доустановке необходимых компонентов. Поскольку это - не apt-get, и не установка прекомпилированных пакетов, все требуемое извлекается непосредственно из исходников. И потому первое, что нам потребуется - настройка условий компиляции.
Глобальные параметры сборки посредством системы портежей описываются в файле /etc/make.conf. Вызываем его в редакторе nano (не забыв про опцию -w, если не решили этот вопрос разом - определением псевдонима) и начинаем действовать.
Первое, что бросается в глаза после открытия вышеупомянутого файла - переменная USE. Смысл ее - в определении условий предкомпиляционного конфигурирования исходников. То есть, она эквивалента опциям --enable/disable или --with/without скрипта ./configure, с исполнения которого начинается ручная сборка любой программы. И, задав значения этой переменной (несложно догадаться, что указав

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

USE="-gpm"
таковую отключаем раз и навсегда (на самом деле - не совсем навсегда, но это тема отдельной беседы).
Список включенных по умолчанию значений переменной USE можно подсмотреть в файле /usr/portage/profiles/default-x86-XX/make.defaults. А полный (и логично классифицированный) список доступных значений можно найти в файле документации - use-howto.html. Мы ведь списали его на дополнительный носитель? Да? - тогда можем вызвать с очередной виртуальной консоли...
Следующая переменная файла /etc/make.conf -

CHOST='i686-pc-linux-gnu'
Она указывает на архитектуру машины, на которой будут собираться программы. И ее, при необходимости, нужно будет привести в соответствие с реалиями оной. Правда, ныне такая необходимость возникнет редко - разве что поменять первую шестерку на пятерку в случае Pentium-просто...
А вот следующая строка,

CFLAGS="*"

очень важна. Ею задаются именно те флаги оптимизации, передаваемые компилятору для оптимизации под конкретный процессор. Вдаваться в детали опять же не буду - и это тема особого, и очень подробного, разговора. Достаточно помнить, что флаг -O3 (а именно он указан здесь по умолчанию) устанавливает самый высокий уровень оптимизации, а оба флага -mcpu=* и -march=* указывают, под какой именно процессор оптимизировать следует. Различие между ними - в том, что программа, собранная с флагом -mcpu=i686, будучи оптимизирована под класс процессоров Pentium Pro и выше (а с формальной точки зрения, и P-II, и P-III, и даже P-4 принадлежат к нему), теоретически способна запуститься и на Pentium-100, тогда как флаг -march=athlon-xp потребует именно того процессора, который указан - даже на просто Athlon'е скомпилированная с ним программа работать не будет.
Смысл переменной

CXXFLAGS=
аналогичен - только для программ, написанных не на Си, а на Си++. И ее имеет смысл определить просто, через переменную CFLAGS=

CXXFLAGS="${CFLAGS}"
как это и сделано в example-файле. Остальные строки которого определяют условия скачивания (в частности, ftp-клиента по умолчанию). Менять их на данном этапе - оснований не вижу, кроме разве что идиосинкразии к wget, используемому по умолчанию.
Определившись с условиями, можно начинать перестройку. Для этого меняем каталог

$ cd /usr/portage
и запускаем сценарий

$ scripts/bootstrap.sh
Он производит сборку пакетов binutils, gcc, gettext и glibc (замещая установленные из тарбаллов прекомпилированные их варианты), а после сборки glibc - пересборку binutils, gcc и gettext. Достигая, таким образом, их идеальной оптимизации... Хотя и ценой временных затрат - процесс даже на мощной машине вполне может занять часок-другой.
Теперь можно полюбоваться на список пакетов, установленных в нашей системе - ибо это и есть тот самый base Linux с очень небольшими коррективами. Для этого даем команду

$ emerge -p system
Если есть желание, время, а главное - полный набор исходников в /usr/portage/distfiles, можно завершить пересборку базовой системы командой



Категория: linux | Добавил: Prise (06.09.2008)
Просмотров: 8430 | Комментарии: 2 | Рейтинг: 0.0/0
Всего комментариев: 2
2 Jurimoubort  
0
ОДНОКЛАССНИКИ ЗНАКОМСТВА

1 sedykicky  
0
ygfkj

Имя *:
Email *:
Код *:
Наш опрос
Чего не хватает на сайте
Всего ответов: 42
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz