05. FreeBSD - Сборка ядра, установка ПО.ppt
- Количество слайдов: 56
Free. BSD
Free. BSD • Монолитное ядро - основная часть операционной системы Free. BSD. • Ядро ответственно за управление памятью, параметры безопасности, работу с сетью, доступ к дискам и т. д.
Ядро Free. BSD • GENERIC – стандартное ядро Free. BSD • Поддерживает широкий спектр аппаратного обеспечения (встроено множество драйверов). • Универсальность
Конфигурирование ядра Free. BSD • Преимущества: – Меньшее время загрузки – Уменьшение использования памяти – Поддержка дополнительного аппаратного обеспечения
Сборка и установка собственного ядра • /usr/src/sys – содержит подкаталоги, представляющие собой различные части ядра (исходные тексты) • /usr/src/sys/arch/conf – содержит конфигурационный файл ядра • /usr/src/sys/arch/conf/compile – здесь будет собираться ядро • где arch - i 386, alpha, amd 64, ia 64, powerpc, sparc 64 и т. д. •
Конфигурационный файл • /usr/src/sys/i 386/conf/GENERIC
Конфигурационный файл
Конфигурационный файл
Конфигурационный файл
Получение исходных кодов ядра
Сборка и установка собственного ядра • Сделать копию файла GENERIC Например: • # cd /usr/src/sys/i 386/conf • # cp GENERIC MYKERNEL
Сборка ядра ''традиционным'' способом 1. Генерация исходных текстов ядра # /usr/sbin/config MYKERNEL 2. Переход в каталог сборки ядра # cd /usr/src/sys/i 386/compile/MYKERNEL 3. Сборка ядра # make cleandepend # make 4. Установка нового ядра # make install
Способ 2 1. Перейти в каталог /usr/src. # cd /usr/src 2. Собрать ядро. # make buildkernel KERNCONF=MYKERNEL 3. Установить новое ядро # make installkernel KERNCONF=MYKERNEL
• Ядро будет установлено в каталог /boot/kernel • Текущее ядро переименовывается в /boot/kernel. old
Обновление ядра
Репозиторий исходных кодов • Дерево файлов с исходным кодом Free. BSD содержится в хранилище CVS (CVS repository) • Вся система доступна любому пользователю в исходном коде
Ветви разработки • Во Free. BSD имеется две ветки разработки: Free. BSD-CURRENT и Free. BSD-STABLE.
Free. BSD-CURRENT • Free. BSD-CURRENT является последними рабочими версиями исходных текстов Free. BSD. • Сюда включаются неоконченные работы, экспериментальные изменения и промежуточные механизмы, которые могут присутствовать, а могут и отсутствовать в следующем официальном релизе программного обеспечения.
Free. BSD-STABLE • Free. BSD-STABLE является веткой разработки, из которой делаются основные релизы. • Изменения в этой ветке происходят с разной скоростью, и при этом предполагается, что сначала они были выполнены для Free. BSD-CURRENT в целях тестирования. • Однако эта ветка остаётся веткой для разработки, а это значит, что в любой момент времени исходные тексты Free. BSD-STABLE могут оказаться неприменимы для некоторой задачи. • Это просто ещё одна ветка при разработке, а не ресурс для конечных пользователей.
T N RRE U Параллельно поддерживаются несколько ветвей исходного кода 3. 1 3. 0 B STA 4. 1 4. 0 C LE 3. 2 3. 3 3. 4 3. 5 Исходный код Free. BSD находится в состоянии постоянного изменения 4. 1. 1 5. 0 Дерево исходного кода
Синхронизация исходных текстов • Анонимный CVS, • CVSup
CVSup • CVSup - пакет ПО для распространения и обновления исходных текстов с основного репозитория CVS на удаленном сервере. • Исходные тексты Free. BSD поддерживаются в репозитории CVS на центральной машине разработки в Калифорнии.
• CVSup использует опрашивающую (pull) модель обновления. • Каждый клиент запрашивает обновления с сервера, когда они нужны. • Пользователь для получения обновлений должен либо запустить CVSup клиента вручную, либо добавить задание в cron для настройки периодических обновлений в автоматическом режиме.
Установка CVSup • пакет net/cvsup или • порт net/cvsup
Настройка CVSup • Подробная информация здесь: • http: //www. freebsd. org/doc/ru_RU. KOI 8 R/books/handbook/cvsup. html
Настройка. CVSup • supfile - файл настройки. • В каталоге /usr/share/examples/cvsup/находится несколько примеров supfile. • Информация в supfile отвечает на вопросы CVSup: – Какие файлы вы хотите получить? – Какие их версии вам нужны? – Откуда вы хотите их получить? – Где вы хотите разместить их на своем компьютере? – Где вы хотите разместить файлы статуса?
Анонимный CVS • Анонимный CVS anoncvs дает возможность синхронизации с удаленным CVS репозиторием. • Позволяет пользователям Free. BSD без специальных привилегий (с правами только на чтение) выполнять CVS операции на одном из официальных anoncvs серверов проекта Free. BSD.
Сборка системы
make world • • Процесс сборки системы называется make world Этапы 1. Сборка и инсталляция приложений основной системы 2. Сборка и инсталляция ядра
Канонический способ обновления системы 1. /usr/src/UPDATING – информация о шагах, которые нужно предпринять перед построением системы 2. # make buildworld # make buildkernel # make installkernel # reboot
1. Очистка /usr/obj • # cd /usr/obj • # chflags -R noschg * • # rm -rf *
2. Make buildword • # cd /usr/src сборка • # make buildword (1 -2 часа)
3. Обновление ядра GENERIC • # make buildkernel • # make installkernel Новое ядро устанавливается в /boot/kernel Старое /boot/kernel. old
4. Make installword • Перезагрузиться в однопользовательском режиме • # reboot • # cd /usr/src • # make installworld
Установка ПО Традиционная процедура установки ПО: 1. Загрузка ПО (в форме исходных текстов или двоичных файлов). 2. Распаковка ПО из дистрибутивного формата (обычно tar-архива). 3. Чтение документации (файлы INSTALL, README, файлы подкаталога doc/). 4. Если программное обеспечение распространялось в форме исходных текстов, его компиляция. Сюда может быть включено редактирования файла Makefile, запуск скрипта configure и другие работы. 5. Тестирование и установка программного обеспечения.
Установка ПО • Free. BSD предоставляет две технологии упрощающие установку ПО: пакеты и порты.
Пакеты • Система пакетов – это способ упаковки ПО, позволяющая в последующем извлечь все необходимое на другой машине. • При этом автоматически формируется конфигурация, обеспечивающая работу ПО на этой системе. • Файлы пакетов распространяются в форматах. tgz и. tbz. • Порты можете найти по адресу ftp: //ftp. Free. BSD. org/pub/Free. BSD/ports/packages
Установка пакетов 1 способ – команда Sysinstall Configure-Packages-выбор источника
Установка пакетов
Установка пакетов 2 способ – команда pkg_add Примеры: # pkg_add ftp: //ftp. Free. BSD. org/pub/Free. BSD/ releases/i 386/4. x-STABLE/packages/www/ roxen-1. 3. 111. tgz # fetch ftp: //ftp. Free. BSD. org/pub/Free. BSD/ releases/i 386/4. x-STABLE/packages/www/ roxen-1. 3. 111. tgz # pkg_add roxen-1. 3. 111. tgz
Управление пакетами • Утилита pkg_info - вывод списка и описаний различных установленных пакетов • Утилита pkg_version - вывод отчёта о версиях всех установленных пакетов. Она сравнивает версию имеющегося пакета с текущей версией, находящейся в дереве портов.
Удаление пакетов • Для удаления ранее установленных пакетов используется утилита pkg_delete. • Пример # pkg_delete roxen-1. 3. 111. tgz
Обновление пакетов • Утилита pkg_update позволяет обновить установленный пакет новой версией. tgz. • Пример • # pkg_update newpackage. tgz
Порт • Порт Free. BSD – набор сценариев и исправлений, расположенный в определенной точке системы Free. BSD и содержащий специальный Makefile, позволяющий устанавливать программное обеспечение одной командой: make install. • Порты представляют собой способ компиляции ПО из исходных файлов с помощью строго регламентированной, структурированной и автоматизированной процедуры. • Система портов может также использоваться для генерации пакетов
Дерево портов • Набор портов находится в каталоге /usr/ports.
Структура порта Makefile содержит различные директивы, которые определяют, как приложение должно быть откомпилировано и куда в вашей системе оно должно быть установлено. README. html Краткое описание порта в HTML distinfo содержит информацию о файлах, которые должны существовать в системе для успешной сборки порта, и их контрольные суммы, для проверки того, что файлы в процессе загрузки не были повреждены. files/ patch-aa patch-ab содержит патчи, использование которых необходимо для компиляции и pkg-comment Краткое описание порта pkg-descr Подробное описание порта pkg-plist Список распаковки, где перечислен все файлы инсталляции, а также ключевые слова, сообщающие системе, какие действия нужно предпринять при деинсталляции порта установки программы в вашей системе Free. BSD.
Установка порта • Перейти в каталог порта • Запустить команду make для компиляции ПО • Для инсталляции порта ввести make install
make-цели fetch Загружает tar-архив с дистрибутивного сайта в каталог /usr/ports/distfiles checksum Проверяет подлинность архива с помощью MD 5 checksum extract Распаковывает tar-архив в рабочий подкаталог patch Вносит в исходный код все исправления из каталога files configure Запускает сценарий конфигурирования, который подготавливает исходный код к сборке build Компилирует программный продукт
Удаление портов • Для удаления порта версии, указанной в makefile используется цель deinstall (make deinstall) • Если порт обновлен более поздней версией пакета, потребуется утилита pkg_delete.
Обновление локального дерева портов • Для поддержки синхронизации портов рекомендуется использовать CVSup
Зависимости • Как пакеты, так и порты принимают во внимание зависимости.
Преимущества пакетов • Сжатый tar-архив пакета обычно меньше, чем сжатый tar-архив, содержащий исходный код приложения. • Пакеты не требуют никакой дополнительной компиляции. Для таких больших приложений, как Mozilla, KDE или GNOME, это может быть важно, в частности, если вы работаете на медленной системе. • Пакеты не требуют понимания процесса компиляции программного обеспечения во Free. BSD.
Преимущества портов • • • При установке из порта можно изменять параметры компиляции. Некоторые приложения имеют опции времени компиляции, связанные с тем, что они могут или не могут делать. К примеру, Apache может быть настроен с широким набором различных опций. При построении из порта вы можете не принимать параметры по умолчанию, и задать их самостоятельно. Условия лицензирования некоторых дистрибутивов программного обеспечения запрещает распространение в двоичном виде. Они должны распространяться в виде исходного кода. Некоторые не доверяют дистрибутивам в двоичном виде. При использовании исходного кода вы (по крайней мере теоретически) можете прочесть его и попытаться найти потенциальные проблемы самостоятельно. Если у вас есть собственные патчи, вам нужен исходный код для того, чтобы их применять. Некоторым нравится иметь исходный код, чтобы его можно было просматривать и править, заимствовать из него и тому подобное.
Поиск нужного приложения • На сайте Free. BSD поддерживается обновляемый список имеющихся приложений для Free. BSD, в котором можно выполнять поиск, по адресу http: //www. freebsd. org/ports/index. html. • Dan Langille поддерживает сайт Fresh. Ports по адресу http: //www. Fresh. Ports. org/. На нём отслеживаются изменения в приложениях из дерева портов, как только они происходят, он позволяет вам ''отслеживать'' один или несколько портов, и может высылать оповещение по электронной почте при их обновлении.
Поиск нужного приложения • Если известно точное имя порта, для определения, в какой категории он находится, используется команду whereis file, где file - программа, которую вы хотите установить. Пример. # whereis lsof: /usr/ports/sysutils/lsof т. е. lsof (системная утилита) находится в каталоге /usr/ports/sysutils/lsof
Поиск нужного приложения • Поисковик в Коллекции Портов. • Из каталога /usr/ports выполнить команду make search name=program-name, где program-name - это название программы, которую вы хотите найти. Пример • # make search name=lsof • Port: lsof-4. 56. 4 • Path: /usr/ports/sysutils/lsof • Info: Lists information about open files (similar to fstat(1)) • Maint: obrien@Free. BSD. org • Index: sysutils • B-deps: • R-deps:
05. FreeBSD - Сборка ядра, установка ПО.ppt