ОПЕРАЦИОННАЯ СИСТЕМА АЛЬТ СЕРВЕР ВИРТУАЛИЗАЦИИ 9.2
Описание жизненного цикла
Содержание
1 Отечественная программная инфраструктура поддержки, разработки и обновления ПО ... 2
2 Банк исходных кодов программ ............................................................................................ 3
3 Система контроля зависимостей между пакетами .............................................................. 4
4 Система сборки пакетов в гарантированных сборочных средах ....................................... 5
4.1 Сборочная среда hasher .................................................................................................. 5
4.2 Архитектура hasher ......................................................................................................... 6
5 Единая система управления пакетами программ ................................................................. 7
5.1 Репозитории ..................................................................................................................... 7
5.1.1 Скрипт apt-repo ............................................................................................................ 9
5.1.2 Скрипт apt-cdrom ....................................................................................................... 10
5.1.3 Добавление репозиториев вручную ........................................................................ 10
5.2 Поиск пакетов ................................................................................................................ 11
5.3 Установка или обновление пакета .............................................................................. 11
5.4 Удаление установленного пакета ................................................................................ 13
5.5 Обновление всех установленных пакетов .................................................................. 13
5.6 Обновление ядра ........................................................................................................... 14
6 Система распараллеливания сборки ................................................................................... 15
7 Единая модульная система управления .............................................................................. 15
8 Единая система установки ................................................................................................... 15
9 Система генерации дистрибутивов ..................................................................................... 15
9.1 Образы бездисковых станций ...................................................................................... 15
9.1.1 Установка и удаление образа ................................................................................... 16
9.1.2 Особенности созданного образа .............................................................................. 16
9.1.3 Нестандартное расширение профиля ...................................................................... 17
10 Техническая поддержка ........................................................................................................ 17
2
1 ОТЕЧЕСТВЕННАЯ ПРОГРАММНАЯ ИНФРАСТРУКТУРА
ПОДДЕРЖКИ, РАЗРАБОТКИ И ОБНОВЛЕНИЯ ПО
В качестве технологического комплекса для выпуска ОС «Альт Сервер Виртуализации»
используется инфраструктура в основе, которой, лежат технологии отечественного репозитория
свободного программного обеспечения Sisyphus. Репозиторий не только является хранилищем
пакетов программ, но и сопровождается набором оригинальных технологий, которые
поддерживают его целостность, обеспечивают возможность взаимодействия для разработчиков
том числе и сторонних), и позволяют создавать на этой базе дистрибутивы Linux и другие
решения различного назначения.
Кроме того, данная инфраструктура позволяет обеспечить интеграцию в окружение
операционной системы и поддержку программных продуктов различных разработчиков.
Инфраструктура поддержки, разработки и обновления ПО включает в себя следующие
компоненты:
1.Банк исходных кодов программ
В банке хранятся все исходные коды вместе с историей изменений. Обеспечивается
ведение нескольких веток одного проекта как одним разработчиком, так и разными, в целях
поддержки нескольких версий дистрибутива, а также нескольких дистрибутивов. Банк исходных
кодов интегрирован с системой сборки пакетов.
2.Система контроля зависимостей между пакетами
При формировании пакетов программ, разработчик указывает разного рода зависимости с
другими пакетами (по выполнению, по сборке, и др.). Автоматическая система контроля
анализирует как исполняемые бинарные файлы, так и программы на скриптовых языках в целях
обнаружения неразрешенных зависимостей или паразитных зависимостей. Такая проверка
обеспечивает высокий уровень интеграции всех пакетов в единый репозиторий, на основании,
которого можно создавать целостные решения, а также уменьшает объѐм ручного тестирования,
необходимого в технологическом процессе.
3.Система сборки пакетов в гарантированных сборочных средах
При сборке пакета из исходных кодов автоматически формируется виртуальная файловая
система, гарантирующая воспроизводимость сборки независимо от конфигурации сборочной
системы. Сборка пакетов в виртуальной среде позволяет фиксировать среду сборки, а также
обеспечивает еѐ безопасность. Система сборки интегрирована с банком исходных кодов программ
и позволяет отслеживать связь между собранными пакетами и исходным кодом, что облегчает
тестирование и отладку решений.
3
4.Система распараллеливания сборки
Обеспечивает распределенную сборку пакетов на доступных компьютерных мощностях,
что позволяет достигать разумного времени сборки пакетов и, при необходимости, пересборки
всего репозитория.
5.Единая модульная система управления
Управление различными системными объектами обеспечивается средствами системы
Alterator, которая предоставляет API для создания и подключения различных модулей управления,
специфичных для данного дистрибутива, а также набор готовых модулей для управления
типичными Unix-сервисами.
6.Единая система управления пакетами программ
Управление программным обеспечением осуществляется единой системой,
представляющей ПО в виде так называемых пакетов и контролирующей зависимости между
пакетами, включая версии пакетов. Наличие этой системы позволяет формировать дистрибутивы с
контролированной замкнутостью по зависимостям между программными компонентами, а в
дальнейшем организовывать выборочную установку пакетов или их обновление, без нарушения
целостности системы и без потери пользовательских настроек.
7.Единая система установки
Установка дистрибутива осуществляется единой настраиваемой системой,
интегрированной с системой управления системными объектами и с системой управления
пакетами.
8.Система генерации дистрибутивов
Данная система позволяет создавать инсталляционные образы дистрибутивов (наборы iso-
образов CD или DVD, образа сетевой загрузки) по формализованному описанию (набору целевых
пакетов) с учѐтом зависимостей между пакетами.
2 БАНК ИСХОДНЫХ КОДОВ ПРОГРАММ
Все исходные текста входящих в дистрибутив программ находятся в специально созданном
для этого банке исходных кодов. Все изменения фиксируются в системе контроля версий. Именно
из этого банка в дальнейшем и создаются бинарные пакеты. Таким образом, исходные
программный код из банка исходных кодов проходит стадию сборки в гарантированной
сборочной среде, в результате чего попадает в банк бинарных пакетов.
Исходный текст является свободно доступным, что позволяет производить его
своевременный аудит и адаптацию. Структура хранения исходных кодов может быть
произвольной. Для сборки пакетов из произвольно устроенного репозитория используется утилита
gear.
4
3 СИСТЕМА КОНТРОЛЯ ЗАВИСИМОСТЕЙ МЕЖДУ
ПАКЕТАМИ
В современных системах на базе Linux огромное число общих ресурсов, которыми
пользуются сразу несколько программ: разделяемых библиотек, содержащих стандартные
функции, исполняемых файлов, сценариев и стандартных утилит и т. д. Удаление или изменение
версии одного из составляющих систему компонентов может повлечь неработоспособность
других, связанных с ним компонентов, или даже вывести из строя всю систему. В контексте
системного администрирования проблемы такого рода называют нарушением целостности
системы. Задача администратора обеспечить наличие в системе согласованных версий всех
необходимых программных компонентов (обеспечение целостности системы).
Для установки, удаления и обновления программ и поддержания целостности системы в
Linux в первую очередь стали использоваться менеджеры пакетов. С точки зрения менеджера
пакетов программное обеспечение представляет собой набор компонентов программных
пакетов. Такие компоненты содержат в себе набор исполняемых программ и вспомогательных
файлов, необходимых для корректной работы программного обеспечения. Менеджеры пакетов
облегчают установку программ: они позволяют проверить наличие необходимых для работы
устанавливаемой программы компонент подходящей версии непосредственно в момент установки,
а также производят необходимые процедуры для регистрации программы во всех операционных
средах пользователя: сразу после установки программа может быть доступна пользователю из
командной строки и – если это предусмотрено – появляется в меню всех графических оболочек.
Часто компоненты, используемые различными программами, выделяют в отдельные пакеты
и помечают, что для работы ПО, предоставляемого пакетом A, необходимо установить пакет B. В
таком случае говорят, что пакет A зависит от пакета B или что между пакетами A и B существует
зависимость.
Отслеживание зависимостей между такими пакетами представляет собой серьѐзную задачу
для любого дистрибутива некоторые компоненты могут быть взаимозаменяемыми: может
обнаружиться несколько пакетов, предлагающих затребованный ресурс.
Задача контроля целостности и непротиворечивости установленного в системе ПО ещѐ
сложнее. Представим, что некие программы A и B требуют наличия в системе компоненты C
версии 1.0. Обновление версии пакета A, требующее обновления компоненты C до новой,
использующей новый интерфейс доступа, версии (например, до версии 2.0), влечѐт за собой
обязательное обновление и программы B.
Однако менеджеры пакетов оказались неспособны предотвратить все возможные коллизии
при установке или удалении программ, а тем более эффективно устранить нарушения целостности
5
системы. Особенно сильно этот недостаток сказывается при обновлении систем из
централизованного репозитория пакетов, в котором последние могут непрерывно обновляться,
дробиться на более мелкие и т. п. Этот недостаток и стимулировал создание систем управления
программными пакетами и поддержания целостности системы.
Для автоматизации этого процесса и применяется Усовершенствованная система
управления программными пакетами APT (от англ. Advanced Packaging Tool). Такая
автоматизация достигается созданием одного или нескольких внешних репозиториев, в которых
хранятся пакеты программ и относительно которых производится сверка пакетов, установленных
в системе. Репозитории могут содержать как официальную версию дистрибутива, обновляемую
его разработчиками по мере выхода новых версий программ, так и локальные наработки,
например, пакеты, разработанные внутри компании.
Таким образом, в распоряжении APT находятся две базы данных: одна описывает
установленные в системе пакеты, вторая внешний репозиторий. APT отслеживает целостность
установленной системы и, в случае обнаружения противоречий в зависимостях пакетов,
руководствуется сведениями о внешнем репозитории для разрешения конфликтов и поиска
корректного пути их устранения.
4 СИСТЕМА СБОРКИ ПАКЕТОВ В ГАРАНТИРОВАННЫХ
СБОРОЧНЫХ СРЕДАХ
4.1 Сборочная среда hasher
hasher инструмент для сборки пакетов в «чистой» и контролируемой среде. Это
достигается с помощью создания в chroot минимальной сборочной среды, установки туда
указанных в source-пакете сборочных зависимостей и сборке пакета в свежесозданной среде. Для
сборки каждого пакета сборочная среда создаѐтся заново.
Такой принцип сборки имеет несколько следствий:
все необходимые для сборки зависимости должны быть указаны в пакете. Для облегчения
поддержания сборочных зависимостей в актуальном состоянии в Sisyphus имеется инстру-
мент под названием buildreq;
сборка не зависит от конфигурации компьютера пользователя, собирающего пакет, и может
быть повторена на другом компьютере;
изолированность среды сборки позволяет с лѐгкостью собирать на одном компьютере паке-
ты для разных дистрибутивов и веток репозитория для этого достаточно лишь направить
hasher на различные репозитории для каждого сборочного окружения.
Дополнительно к сборке пакетов hasher:
6
проверяет их с помощью утилиты sisyphus_check;
создаѐт локальный APT-репозиторий с результатами сборки, позволяя последовательно со-
бирать пакеты, опираясь на уже собранные.
Система сборки пакетов в гарантированных сборочных средах предъявляет следующие
требования:
не снижать уровень безопасности хост-системы;
обеспечивать собственную безопасность от атак со стороны пакетов;
обеспечивать безопасность сборки пакетов от атак со стороны других пакетов;
гарантировать надѐжность (воспроизводимость) результатов сборки;
обеспечивать приемлемый уровень производительности.
4.2 Архитектура hasher
В основе архитектуры hasher лежит трѐх пользовательская модель: вызывающий
непривилегированный пользователь (C) и два непривилегированных вспомогательных
псевдопользователя; первый (R) играет роль root в порождаемой сборочной среде, второй (U)
обычного пользователя, собирающего программы.
Переключение между вызывающим и вспомогательными пользователями осуществляется с
помощью специальной привилегированной программы (вызываемой посредством sudo),
написанной с применением мер защиты от непривилегированных пользователей. Кроме того, с
помощью этой программы удаляются процессы, запущенные вспомогательными
псевдопользователями и не завершившиеся в срок, а также создаются устройства. Наконец, эта
программа предоставляет возможность контролировать ресурсы, выделяемые процессам
непривилегированных пользователей, для защиты от DOS-атак.
Путь пакета через сборочную систему в общих чертах выглядит следующим образом:
Пользователь C порождает среду (aptbox) для работы с apt.
Полностью удаляется сборочная среда, возможно оставшаяся от предыдущей сборки.
Удаление происходит последовательно в chroot пользователем U, в chroot пользователем R и,
наконец, пользователем С.
Пользователь C создаѐт каркас новой сборочной среды, состоящий из вспомогательных
каталогов и вспомогательных статически слинкованных программ (ash, find и cpio). С помощью
вспомогательной привилегированной программы создаѐтся фиксированный набор устройств,
достаточный для нормального функционирования сборочной среды и при этом не несущий угрозы
host-системе.
Порождается базовая установочная среда, представляющая собой набор средств,
необходимых для штатной установки пакетов в эту среду. Пользователь C с помощью apt
7
определяет набор пакетов, необходимых для порождения базовой установочной среды.
Пользователь R с помощью вспомогательных статически слинкованных программ распаковывает
эти пакеты.
Порождается базовая сборочная среда, представляющая собой набор средств, необходимых
для сборки любого пакета. Пользователь C с помощью apt определяет набор пакетов, пользователь
R устанавливает их.
Порождается сборочная среда для данного пакета. Пользователь U извлекает сборочные
зависимости пакета, пользователь C с помощью apt определяет набор пакетов для установки, и
пользователь R устанавливает их.
Пользователь U осуществляет сборку пакета.
Такая схема призвана исключить атаки вида U->R, U->C, R->C, а также все виды атак на
root.
Для повышения производительности, особенно важной при сборке большого числа пакетов,
применяется кэширование базовой сборочной среды. С помощью средств apt реализована
возможность использования собранных ранее пакетов для сборки последующих пакетов.
5 ЕДИНАЯ СИСТЕМА УПРАВЛЕНИЯ ПАКЕТАМИ ПРОГРАММ
Используемая усовершенствованная система управления программными пакетами APT,
является системой управления пакетами с простым пользовательским интерфейсом, позволяющим
производить установку, обновление и повседневные «хозяйственные» работы с установленными
на машине программами без необходимости изучения тонкостей используемого в дистрибутиве
менеджера программных пакетов.
Система APT состоит из нескольких утилит. Чаще всего используется утилита управления
пакетами apt-get: она автоматически определяет зависимости между пакетами и строго следит за
их соблюдением при выполнении любой из следующих операций: установка, удаление или
обновление пакетов.
5.1 Репозитории
Репозитории, с которыми работает APT, отличаются от обычного набора пакетов наличием
метаинформации индексов пакетов, содержащихся в репозитории, и сведений о них. Поэтому,
чтобы получить всю информацию о репозитории, APT достаточно получить его индексы.
APT может работать с любым количеством репозиториев одновременно, формируя единую
информационную базу обо всех содержащихся в них пакетах. При установке пакетов APT
обращает внимание только на название пакета, его версию и зависимости, а расположение в том
или ином репозитории не имеет значения. Если потребуется, APT в рамках одной операции
установки группы пакетов может пользоваться несколькими репозиториями.
8
П р и м е ч а н и е . Подключая одновременно несколько репозиториев, нужно следить за тем,
чтобы они были совместимы друг с другом по пакетной базе, т. е. отражали один определѐнный
этап разработки. Например, совместимыми являются основной репозиторий дистрибутива и
репозиторий обновлений по безопасности к данному дистрибутиву. В то же время смешение среди
источников APT репозиториев, относящихся к разным дистрибутивам, или смешение стабильного
репозитория с нестабильной веткой разработки (Sisyphus) чревато различными неожиданными
трудностями при обновлении пакетов.
APT позволяет взаимодействовать с репозиторием с помощью различных протоколов
доступа. Наиболее популярные HTTP и FTP, однако существуют и некоторые дополнительные
методы.
Для того чтобы APT мог использовать тот или иной репозиторий, информацию о нем
необходимо поместить в файл /etc/apt/sources.list, либо в любой файл .list
(например, mysources.list) в каталоге /etc/apt/sources.list.d. Описания
репозиториев заносятся в эти файлы в следующем виде:
rpm [подпись] метод: путь база название
rpm-src [подпись] метод: путь база название
Здесь:
rpm или rpm-src тип репозитория (скомпилированные программы или исходные тексты);
[подпись] необязательная строка-указатель на электронную подпись разработчиков.
Наличие этого поля подразумевает, что каждый пакет из данного репозитория должен быть
подписан соответствующей электронной подписью. Подписи описываются в файле
/etc/apt/vendor.list;
метод способ доступа к репозиторию: ftp, http, file, cdrom, copy;
путь путь к репозиторию в терминах выбранного метода;
база относительный путь к базе данных репозитория;
название название репозитория.
Непосредственно после установки ОС «Альт Сервер Виртуализации» в файлах
/etc/apt/sources.list.d/*.list обычно указывается интернет-репозиторий,
совместимый с установленным дистрибутивом.
После того как отредактирован список репозиториев в sources.list, необходимо
обновить локальную базу данных APT о доступных пакетах. Это делается командой apt-get
update.
Если в sources.list присутствует репозиторий, содержимое которого может
изменяться (как происходит с любым постоянно разрабатываемым репозиторием, в частности,
9
обновлений по безопасности), то прежде чем работать с APT, необходимо синхронизировать
локальную базу данных с удалѐнным сервером командой apt-get update. Локальная база
данных создаѐтся заново каждый раз, когда в репозитории происходит изменение: добавление,
удаление или переименование пакета. Для репозиториев, находящихся на компакт-дисках и
подключѐнных командой apt-cdrom add, синхронизация производится единожды в момент
подключения.
При выборе пакетов для установки, APT руководствуется всеми доступными
репозиториями вне зависимости от способа доступа к ним. Так, если в репозитории, доступном по
сети Интернет, обнаружена более новая версия программы, чем на компакт-диске, то APT начнѐт
загружать данный пакет из Интернет. Поэтому если подключение к Интернет отсутствует или
ограничено низкой пропускной способностью канала или высокой стоимостью, то следует
закомментировать те строчки в /etc/apt/sources.list, в которых говорится о ресурсах,
доступных по Интернет.
5.1.1 Скрипт apt-repo
Для редактирования репозиториев можно воспользоваться скриптом apt-repo:
просмотреть список активных репозиториев:
apt-repo
добавить репозиторий в список активных репозиториев:
apt-repo add репозиторий
удалить или выключить репозиторий:
apt-repo rm репозиторий
обновить информацию о репозиториях:
apt-repo update
справка о команде apt-repo:
man apt-repo
или
apt-repo --help
П р и м е ч а н и е . Для выполнения большинства команд необходимы права администратора.
Типичный пример использования: удалить все источники и добавить стандартный
репозиторий P9 (архитектура выбирается автоматически):
# apt-repo rm all
# apt-repo add p9
10
5.1.2 Скрипт apt-cdrom
Для добавления в sources.list репозитория на компакт-диске в APT предусмотрена
специальная утилита apt-cdrom. Чтобы добавить запись о репозитории на компакт-диске,
достаточно вставить диск в привод и выполнить команду apt-cdrom add. После этого в
sources.list появится запись о подключѐнном диске примерно такого вида:
rpm cdrom:[ALT 9.2 Server V x86_64]/ Altlinux main
П р и м е ч а н и е . Если при выполнении команды apt-cdrom add, вы получаете ошибку:
Не найдена точка монтирования /media/ALTLinux/ диска
Необходимо:
в файл /etc/fstab добавить строку:
/dev/sr0 /media/ALTLinux udf,iso9660
ro,noauto,user,utf8,nofail,comment=x-gvfs-show 0 0
создать каталог для монтирования:
# mkdir /media/ALTLinux
затем использовать команду добавления носителя:
# apt-cdrom add
5.1.3 Добавление репозиториев вручную
Для изменения списка репозиториев можно отредактировать в любом текстовом редакторе
файлы из каталога /etc/apt/sources.list.d/.
П р и м е ч а н и е . Для изменения этих файлов необходимы права администратора.
В файле alt.list может содержаться такая информация:
# ftp.altlinux.org (ALT Linux, Moscow)
# ALT Linux Platform 9
#rpm [p9] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/p9/branch
x86_64 classic
#rpm [p9] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/p9/branch
x86_64-i586 classic
#rpm [p9] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/p9/branch
noarch classic
rpm [p9] http://ftp.altlinux.org/pub/distributions/ALTLinux/p9/branch
x86_64 classic
rpm [p9] http://ftp.altlinux.org/pub/distributions/ALTLinux/p9/branch
x86_64-i586 classic
11
rpm [p9] http://ftp.altlinux.org/pub/distributions/ALTLinux/p9/branch
noarch classic
По сути, каждая строчка соответствует некому репозиторию. Не активные репозитории
строки, начинающиеся со знака #. Для добавления нового репозитория, достаточно дописать его в
этот или другой файл.
После обновления списка репозиториев следует обновить информацию о них (выполнить
команду apt-get update или apt-repo update).
5.2 Поиск пакетов
Если точное название пакета неизвестно, то для его поиска можно воспользоваться
утилитой apt-cache, которая позволяет искать не только по имени пакета, но и по его
описанию.
Команда apt-cache search позволяет найти все пакеты, в именах или описании
которых присутствует указанная подстрока. Например:
$ apt-cache search ^telegraf
ceph-mgr-telegraf - Telegraf module for Ceph Manager Daemon
telegraf - The plugin-driven server agent for collecting and reporting
metrics
Обратите внимание, что в данном примере в поисковом выражении используется символ ^,
указывающий на то, что необходимо найти совпадения только в начале строки данном случае
в начале имени пакета).
Для того чтобы подробнее узнать о каждом из найденных пакетов и прочитать его описа-
ние, можно воспользоваться командой apt-cache show, которая покажет информацию о пакете
из репозитория:
$ apt-cache search ^telegraf
ceph-mgr-telegraf - Telegraf module for Ceph Manager Daemon
telegraf - The plugin-driven server agent for collecting and reporting
metrics
Утилита apt-cache позволяет осуществлять поиск и по русскому слову, однако в этом
случае будут найдены только те пакеты, у которых есть описание на русском языке. К сожалению,
русское описание на настоящий момент есть не у всех пакетов, хотя описания наиболее
актуальных для пользователя пакетов переведены.
5.3 Установка или обновление пакета
Установка пакета с помощью APT выполняется командой:
# apt-get install имя_пакета
П р и м е ч а н и е . Для установки пакетов требуются привилегии администратора.
12
Утилита apt-get позволяет устанавливать в систему пакеты, требующие для работы
другие, пока ещѐ не установленные. В этом случае он определяет, какие пакеты необходимо
установить, и устанавливает их, пользуясь всеми доступными репозиториями.
Установка пакета telegraf командой apt-get install telegraf приведѐт к
следующему диалогу с APT:
# apt-get install telegraf
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие НОВЫЕ пакеты будут установлены:
telegraf
0 будет обновлено, 1 новых установлено, 0 пакетов будет удалено и 6 не
будет обновлено.
Необходимо получить 14,7MB архивов.
После распаковки потребуется дополнительно 72,2MB дискового
пространства.
Получено: 1 http://mirror.yandex.ru p9/branch/x86_64/classic telegraf
1.12.1-alt1:p9+237461.200.1.1@1568252449 [14,7MB]
Получено 14,7MB за 5s (2787kB/s).
Совершаем изменения...
Подготовка...
################################# [100%]
Обновление / установка...
1: telegraf-1.12.1-alt1
################################# [100%]
Завершено.
Команда apt-get install имя_пакета используется и для обновления уже
установленного пакета или группы пакетов. В этом случае apt-get дополнительно проверяет, не
обновилась ли версия пакета в репозитории по сравнению с установленным в системе.
При помощи APT можно установить и отдельный бинарный rpm-пакет, не входящий ни в
один из репозиториев (например, полученный из Интернет). Для этого достаточно выполнить
команду apt-get install путь_к_файлу.rpm. При этом APT проведѐт стандартную
процедуру проверки зависимостей и конфликтов с уже установленными пакетами.
Иногда, в результате операций с пакетами без использования APT, целостность системы
нарушается, и apt-get отказывается выполнять операции установки, удаления или обновления.
В этом случае необходимо повторить операцию, задав опцию -f, заставляющую apt-get
13
исправить нарушенные зависимости, удалить или заменить конфликтующие пакеты. В этом
случае необходимо внимательно следить за сообщениями, выдаваемыми apt-get. Любые
действия в этом режиме обязательно требуют подтверждения со стороны пользователя.
5.4 Удаление установленного пакета
Для удаления пакета используется команда apt-get remove имя_пакета. Для того
чтобы не нарушать целостность системы, будут удалены и все пакеты, зависящие от удаляемого:
если отсутствует необходимый для работы приложения компонент (например, библиотека), то
само приложение становится бесполезным. В случае удаления пакета, который относится к
базовым компонентам системы, apt-get потребует дополнительного подтверждения
производимой операции с целью предотвратить возможную случайную ошибку.
П р и м е ч а н и е . Для удаления пакетов требуются привилегии администратора.
При попытке с помощью apt-get удалить базовый компонент системы, вы увидите
следующий запрос на подтверждение операции:
# apt-get remove filesystem
Обработка файловых зависимостей... Завершено
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие пакеты будут УДАЛЕНЫ:
basesystem filesystem ppp sudo
Внимание: следующие базовые пакеты будут удалены:
В обычных условиях этого не должно было произойти, надеемся, вы точно
представляете, чего требуете!
basesystem filesystem (по причине basesystem)
0 пакетов будет обновлено, 0 будет добавлено новых, 4 будет
удалено(заменено) и 0 не будет обновлено.
Необходимо получить 0B архивов. После распаковки 588kБ будет
освобождено.
Вы делаете нечто потенциально опасное!
Введите фразу 'Yes, do as I say!' чтобы продолжить.
Каждую ситуацию, в которой APT выдаѐт такое сообщение, необходимо рассматривать
отдельно. Однако, вероятность того, что после выполнения этой команды система окажется
неработоспособной, очень велика.
5.5 Обновление всех установленных пакетов
Для обновления всех установленных пакетов используется команда apt-get upgrade.
Она позволяет обновить те, и только те установленные пакеты, для которых в репозиториях,
14
перечисленных в /etc/apt/sources.list, имеются новые версии; при этом из системы не
будут удалены никакие другие пакеты. Этот способ полезен при работе со стабильными пакетами
приложений, относительно которых известно, что они при смене версии изменяются
несущественно.
Иногда, однако, происходит изменение в именовании пакетов или изменение их
зависимостей. Такие ситуации не обрабатываются командой apt-get upgrade, в результате
чего происходит нарушение целостности системы: появляются неудовлетворѐнные зависимости.
Например, переименование пакета MySQL-shared, содержащего динамически загружаемые
библиотеки для работы с системой управления базами данных MySQL, в libmysqlclient
(отражающая общую тенденцию к наименованию библиотек в дистрибутиве) не приводит к тому,
что установка обновлѐнной версии libmysqlclient требует удаления старой версии MySQL-shared.
Для разрешения этой проблемы существует режим обновления в масштабе дистрибутива
apt-get dist-upgrade.
Для обновления всех установленных пакетов необходимо выполнить команды:
# apt-get update
# apt-get dist-upgrade
Первая команда (apt-get update) обновит индексы пакетов. Вторая команда (apt-get
dist-upgrade) позволяет обновить только те установленные пакеты, для которых в
репозиториях, перечисленных в /etc/apt/sources.list, имеются новые версии.
В случае обновления всего дистрибутива APT проведѐт сравнение системы с репозиторием
и удалит устаревшие пакеты, установит новые версии присутствующих в системе пакетов, а также
отследит ситуации с переименованиями пакетов или изменения зависимостей между старыми и
новыми версиями программ. Всѐ, что потребуется поставить (или удалить) дополнительно к уже
имеющемуся в системе, будет указано в отчѐте apt-get, которым APT предварит само
обновление.
П р и м е ч а н и е . Команда apt-get dist-upgrade обновит систему, но ядро ОС не
будет обновлено.
5.6 Обновление ядра
Для обновления ядра ОС необходимо выполнить команду:
# update-kernel
П р и м е ч а н и е . Если индексы сегодня еще не обновлялись перед выполнением команды
update-kernel необходимо выполнить команду apt-get update.
Команда update-kernel обновляет и модули ядра, если в репозитории обновилось что-
то из модулей без обновления ядра.
15
Новое ядро загрузится только после перезагрузки системы.
Если с новым ядром что-то пойдѐт не так, вы сможете вернуться к предыдущему варианту,
выбрав его в начальном меню загрузчика.
После успешной загрузки на обновленном ядре можно удалить старое, выполнив команду:
# remove-old-kernels
6 СИСТЕМА РАСПАРАЛЛЕЛИВАНИЯ СБОРКИ
Обеспечивает распределенную сборку пакетов на доступных компьютерных мощностях,
что позволяет достигать разумного времени сборки пакетов и, при необходимости, пересборки
всего репозитория.
7 ЕДИНАЯ МОДУЛЬНАЯ СИСТЕМА УПРАВЛЕНИЯ
На платформе Alterator построены инсталлятор системы и штатный еѐ конфигуратор. В
качестве языка описаний интерфейсов используется встроенный интерпретатор Scheme. Alterator
позволяет, например, построить на своей основе удобный интерфейс для выполнения наиболее
востребованных административных задач: добавление и удаление пользователей, настройка
сетевых подключений, просмотр информации о состоянии системы, и т.п.
Важной особенностью является возможность сетевого доступа к такого рода интерфейсу,
что позволяет осуществлять администрирование, в том числе и удаленно.
8 ЕДИНАЯ СИСТЕМА УСТАНОВКИ
Единая система установки состоит из модулей, написанных на платформе Alterator.
Установка может проходить как из режима Live CD, так и сразу после загрузки с установочного
диска или образа.
9 СИСТЕМА ГЕНЕРАЦИИ ДИСТРИБУТИВОВ
Система генерации дистрибутивов использует все преимущества банка пакетов и позволяет
получить установочные образы. Для сборки используется утилита mkimage, которая использует
для сборки «профиль», представляющий из себя набор файлов Makefile. В результате из пакетов
репозитория создается установочный диск CD/DVD. Целостность репозитория и его
непротиворечивость позволяют с легкостью генерировать новые образы при необходимости.
9.1 Образы бездисковых станций
Помимо создания установочных образов предусмотрена система для создания образов ОС
для бездисковых станций. Для этого используется утилита mknfsroot.
16
Утилита принимает единственный параметр местоположение профиля. Профиль это
каталог, содержащий следующие файлы:
packages список пакетов для установки;
modules список модулей ядра для сетевых адаптеров;
pxelinux.cfg конфигурационный файл для pxelinux;
autoinstall.scm сценарий для инсталлятора.
Последний файл содержит инструкции для настройки системы, например:
настройка системной локали;
настройка раскладки клавиатуры;
настройка часового пояса;
задание пароля администратору.
Запуск утилиты:
# mknfsroot /etc/mknfsroot/profiles/sample
В результате появляется файл /var/lib/mknfsroot/mknfsroot.tar, содержащий:
настроенную систему;
ядро, initrd, образ загрузчика pxelinux и конфигурационный файл для него.
9.1.1 Установка и удаление образа
Развѐртывание образа осуществляется при помощи утилиты setupnfsroot. Данная ути-
лита принимает два параметра: путь к tar-архиву и целевой каталог.
# setupnfsroot /var/lib/mknfsroot/nfsroot.tar /var/lib/tftpboot
Утилита развѐртывает образ и настраивает необходимые точки монтирования. Если к этому
моменту в системе уже настроены tftp и dhcp сервера, то можно уже попробовать загрузить без-
дисковую станцию.
Обратная операция осуществляется утилитой removenfsroot.
# removenfsroot /var/lib/tftpboot
В результате каталог очищается, и точки монтирования удаляются.
9.1.2 Особенности созданного образа
имя машины (hostname) выставляется по результатам резолвинга еѐ ip-адреса;
поскольку один и тот же образ используется для загрузки большого количества бездиско-
вых узлов, то для каждого узла создаѐтся персональный каталог /var. Это перестраховка,
поэтому для конкретного случая созданный автоматом образ желательно подправить;
при остановке машины сеть не останавливается, так как корневая файловая система сете-
вая.
17
9.1.3 Нестандартное расширение профиля
Работает mknfsroot следующим образом:
1. Утилита переключается на псевдопользователя, настроенного так, чтобы работал
hasher.
2. Две части профиля - общая для всех образов (/etc/mknfsroot/template) и
специфичная (/etc/mknfsroot/profiles/*) объединяются в один профиль mkimage.
3. Запускается mkimage.
Меняя содержимое /etc/mknfsroot/template можно неограниченно изменять пове-
дение mkfsroot вплоть до того что утилита начнѐт делать iso образы вместо tar-файлов.
10 ТЕХНИЧЕСКАЯ ПОДДЕРЖКА
Способы обращения в службу технической поддержки (доступность зависит от приобре-
тенного вами уровня техподдержки) указаны на странице https://www.basealt.ru/sales/support/.
По вопросу приобретения технической поддержки на дистрибутив обращайтесь по элек-
тронной почте: sales@basealt.ru