Войтов Η. М. Администрирование ос red Hat Enterprise Linux Учебный курс І р п souline a c a d e m y a L l I a n c e м о с к в а, 2011




страница3/13
Дата19.11.2016
Размер5.62 Mb.
Просмотров282
Скачиваний0
1   2   3   4   5   6   7   8   9   ...   13
1.5.1. Менеджер пакетов R P M
В общем случае пакет rpm представляет собой контейнер, содержащий группы файлов, ассоциированных с определенным приложением. В состав групп входят бинарные исполняемые файлы, библиотеки функций, конфигурационные файлы и файлы документации. Кроме того, в состав каждого rpm -пакета входит набор инструкций, которые определяют, как и куда следует установить файлы пакета, а также позволяющие определить необходимые зависимости файлов данного пакета от файлов, содержащихся в других пакетах.
Каждый rpm -пакет имеет строго определенное название, в состав которого входит версия пакета, релиз пакета и архитектура процессора, с которой данный пакет можно использовать. Структура именования rpm пакета имеет следующий вид:
<имя пакета>-<версия пакета>-<релиз>-<архитектура>.грт
Версия пакета диктуется непосредственным разработчиком ПО. Новые версии включают новые возможности. Релиз, как правило, относится к одной версии и содержит исправления ошибок в данной версии или незначительные усовершенствования. Архитектура определяет, для какого типа процессора предназначен данный пакет. Существуют пакеты, независящие от процессорной архитектуры и устанавливаемые на оборудовании с любыми процессорами.
Наиболее используемые архитектуры, использующиеся в пакетах rpm, перечислены в табл. 1.8.
Таблица 1.8.
Наименования пакетов RPM
Архитектура
Описание
noarch
Архитектурно-независимые пакеты, которые могут быть установлены на оборудовании с произвольной архитектурой процессора
Ї386
Предназначены для установки на х битных системах типа х86
І586
Предназначены для установки на устаревших системах х86
І686
Предназначены для установки в системах, имеющих процессоры типа Intel Pentium I, II, III, IV
х86_64
Предназначены для установки на х битных системах с процессорами типа A M D Opteron, A M D Athlon64, Intel EM64T

38
■■■■Illi
Модуль 1. Системное администрирование
Архитектура
Описание
ia64
Данные пакеты предназначены для установки на системы с процессорами типа Intel Itanium ррс
Данные пакеты предназначены для установки на х битные системы IBM, такие как IBM eServer, IBM pSeries, IBM iSeries,
IBM Power Данные пакеты предназначены для установки на х битные системы IBM eServer System Пакеты rpm могут находиться на локальных файловых системах, но могут быть доступны и посети. Основным средством управления пакетами в ОС Linux является менеджер пакетов Red Hat Package Manager (R PM ). В состав данного менеджера пакетов входит утилита rpm, при помощи которой происходит установка, обновление и выполнение других операций над пакетами, а также специальная база данных, в которой содержится информация обо всех установленных в системе пакетах, включая зависимости между пакетами и принадлежащие пакетам файлы. Кроме того, менеджер пакетов RPM отслеживает целостность файлов, входящих в состав пакета и управляет конфликтами, происходящими в процессе установки или обновления пакетов.
Перед установкой пакета rpm желательно убедиться, что он предоставлен из удостоверенного источника. Процесс проверки подлинности пакета заключается в проверке цифровой подписи открытым ключом, предоставленным разработчиком пакета. Подписка пакетов требует использования специальных утилит, использующих стандарт OpenPGP (R FC 4880), использующих набор ключей для шифрования и деш ифрования данных. Одной из таких утилит является GnuPG, которая используется для подписи RPM пакетов. Используя,
разработчик создает открытый и закрытый ключ. Закрытый ключ остается в надежном месте у разработчика, а открытый ключ публикуется в общедоступном месте, доступном по протоколам H T T P или В процессе установки или обновления rpm пакетов проверка цифровой подписи выполняется автоматически менеджером пакетов RPM Прежде чем использовать возможность проверки цифровых подписей пакетов, необходимо импортировать в систему соответствующие открытые ключи разработчиков данных пакетов. Импорт ключей для проверки цифровых подписей осуществляется командой rp m
--import <файл>,
указав файл, содержащий ключи в формате GPG. Файлы, распространяемые компанией Red Hat, располагаются в корневом каталоге первого инсталляционного компакт-диска ОС Linux и начинаются со строки RPM -GPG-KEY. Д ля проверки количества импортированных открытых (public) ключей используется команда
rpm -qa gpg-pubkey. Для просмотра детальной информации по импортированным ключам необходимо использовать команду
rpm -qi <название_ключа>.
После того, как необходимые открытые ключи будут импортированы в систему, убедиться в том, что пакет был получен из удостоверенного источника можно при помощи команды
rpm

<название_пакета.грт>.
Если пакет не подписан,
Менеджер пакетов RPM
M ill··
39
вывод данной команды будет иметь вид «NOT ОК». Если необходимый ключ не был импортирован в систему то будет выдано сообщение вида «M ISSING KEY». Если пакет подписан и не был изменен после того, как его подписал удостоверенный источник, будет выдано сообщение, содержащее фразу «md5 gpg ОК».
Д ля установки пакетов rpm необходимо запустить команду rpm следующим образом:
rpm -ivh < н а з в а н и е _ п а к е т а 1 .rpm> < н а з в а н и е _ п а к е т а 2 .rpm>
< н а з в а н и е _ п а к е т а Ы .rpm>
Ключи -ivh использую тся для установки пакета, детального отображения процесса установки и отображения прогресса установки. При указании нескольких названий пакетов будут установлены все указанные пакеты. Запуск команды rpm с ключом осуществит установку пакета только в том случае, если в системе данный пакет еще не установлен. Для обновления уже установленного пакета используется ключ -U (если обновляемый пакет еще не установлен, то будет выполнена установка пакета. При использовании команды rpm с ключом -F установленный пакет будет обновлен, но если он отсутствует, то установка проведена не будет.
Некоторые файлы, входящие в состав пакета rpm (например, конфигурационные, помечаются специальным образом стем, чтобы при обновлении пакета у пользователя была возможность сохранить прежние версии.
Д ля удаления пакета используется команда rpm с ключом -е. Если пакет, который вы пытаетесь удалить, необходим для работы других пакетов, система выдаст предупреждение о нарушении зависимостей в случае удаления данного пакета. Если пакет, который необходимо удалить, содержит конфигурационные файлы, которые были изменены, то менеджер пакетов сохранит их с расширением
.rpmsave.
Помимо процедур установки, обновления и удаления пакетов менеджер RPM позволяет выполнять проверку целостности файлов, входящих в состав пакета, согласно таким параметрам как код доступа, владелец файла, размер файла, M D5 сумма. Проверка данного типа заключается в сличении параметров оригинального файла с параметрами файла, установленного в системе. Для выполнения данной проверки необходимо запустить rpm -V <название_пакета>. Д ля проверки всех пакетов в системем можно использовать команду rpm -Va, в результате выполнения которой отобразятся все файлы, которые были изменены.
Если вывод данной команды окажется пустым, значит файлы, входящие в состав пакеты небыли изменены. В случае, если какие-либо файлы были изменены, то отобразится таблица, содержащая список измененных файлов и соответствующий код, обозначающий измененный параметр. В следующем листинге приведен пример проверки файлов, входящих в состав пакета sysklogd-1.4.1-40.el5:
# rpm -Vv s y s k l o g d - 1 .4.1-40.el5
........ с / e t c / l o g r o t a t e .d/syslog
........ с / e t c / r c .d/init.d/syslog
........ с /etc/sysconfig/syslog
S.5....T с /etc/syslog.conf
........
/sbin/klogd
........
/sbin/syslogd

ІНШІ
Модуль 1. Системное администрирование
/usr/share/do c / s y s k l o g d - 1 .4.1
d /usr/share/do c / s y s k l o g d - 1 .4.1/ANNOUNCE
d /usr/share/do c / s y s k l o g d - 1 .4.1/CHANGES
d /usr/share/do c / s y s k l o g d - 1 .4.1/ChangeLog
Как видно из листинга, файл
/etc/sy slo g .co n f был изменена именно:
• был изменен размер файла, о чем свидетельствует символ S в поле кода проверки;
• сумма M D5 была изменена, о чем свидетельствует символ 5 в поле кода проверки;
• время модификации файла, о чем свидетельствует символ Т в поле кода проверки.
Следом за кодом проверки указывается тип файла. Возможные коды проверки файлов, входящих в состав пакета rpm, приведены в табл. 1.9.
Таблица 1.9.
Коды проверки RPM
Код проверки
Описание
S
Размер файла был изменен
М
Код доступа файла был изменен
5
Сумма M D 5 файла была изменена
D
Старший или младший номер устройства был изменен
L
Путь символической ссылки был изменен и
Владелец файла был изменен
G
Группа файла была изменена
Т
Время последнего изменения файла было изменено
База данных RPM , входящая в состав менеджера пакетов RPM , содержит много полезной информации, которую можно получить, используя специальные запросы. Данные запросы позволяют определить, какому пакету принадлежит присутствующий в системе файл, определить файлы, входящие в состав пакета, а также просмотреть дополнительную информацию о пакете. Для запроса к базе
RPM необходимо выполнить команду rpm с ключом -q , где < N > - опция, зависящая от типа запроса (таблице 1.10).
Таблица 1.10.
Опции команды rpm -q
Команда
Описание
rpm -Отобразить все установленные в системе пакеты rpm -qf <имя_файла>
Определить пакет, к которому принадлежит указанный файл rpm -qc <название_пакета>
Отобразить только конфигурационные файлы, входящие в состав указанного пакета
Менеджер пакетов RPM
M ill··
41
Команда
Описание
rpm -qi <название_пакета>
Отобразить краткую информацию о пакете rpm -ql <название_пакета>
Отобразить все файлы, входящие в состав пакета rpm -qR <название_пакета>
Отобразить все зависимости, без которых пакет нельзя установить rpm -qd <название_пакета>
Отобразить файлы документации, входящие в состав пакета rpm -q --changelog <название_пакета>
Отобразить список изменений, отображающий изменения между различными версиями данного пакета
Помимо стандартных запросов обращения, база данных RPM позволяет использовать расширенный формат запросов на основе специальных тэгов. Для этого используется ключ —qf ( —queryformat), в котором задается формат запроса подобный функции printf язы ка С:
rpm -qf % {t a g _ n a m e }
Здесь в качестве параметра tag_name указывается один или несколько тегов, информацию о которых можно получить, выполнив команду rpm -querytags.
Например, для отображения информации по лицензиям всех установленных пакетов можно использовать следующий запрос:
# rpm -qa — qf "[%-50{NAME} %{L I C E N S E }\ n ] "
f
iref
OX
LGPLv2+ ekiga gstreamer-plugins-good gnome-python2-applet gnome-session Если необходимо получить информацию о времени установки пакетов, то можно использовать следующий запрос:
# rpm -qa — qf " % {NAME}-%{V E R S I O N }-%{RELEASE} %{INSTALLTIME:date}\n"
b ind - l i b s - 9 . 3.4-6.PI.el5 Tue 18 N ov 2008 07:33:42 PM M S K
a p r - u t i l - 1 .2.7-7,el5 Tue 18 N ov 2008 07:33:45 PM M S K
n s c d - 2 .5-24 Tue 18 N o v 2008 07:33:57 PM M S K
Непосредственно файлы базы данных RPM располагаются в каталоге /v a r /
lib/rpm и представляют собой файлы в формате BD B20 (Berkeley DB). В этом каталоге содержатся фалы следующих типов or GPLv2+ or
GPL
LGPL
GPL/LGPL
GPL
MIT/X11 19 Описание доступных тэгов можно посмотреть зедсь: http://www.rpm.org/max-rpm/ch- queryformat-tags.html
20 Формат BDB используется для хранения информации подобно реляционным базам данных, но данные хранятся в более простом виде, обеспечивающим высокопроизводительный доступ (http://en.wikipedia.org/wiki/Berkeley_DB).


db.OOi, _db.002 и т.д. - Файлы блокировок, используемые менеджером
RPM .
• Packages - Содержит информацию о заголовках всех установленных пакетов в индексированном виде.
• Name, Providename, Group - используются для ускореннного доступа к соответствующей информации (название пакета, группа и т.д.).
В целях безопасности и надежности системы, данный каталог необходимо регулярно резервировать. В случае повреждения базы данных RPM можно выполнить ее пересоздание на основе данных об установленных пакетах, используя команду rpm —rebuilddb., однако для этого обязательно наличие хотя бы одного файла - /var/lib /rp m /P ack ages. Существует также возможность создать новую базу данных RPM , используя команду rpm -initdb, однако практической пользы в этом нет, так как она не будет содержать никаких данных об установленных пакетах. В случае невозможносии восстановить базу данных RPM рекомендуется полностью переустановить систему
В ОС Linux существуют графические программы управления пакетами rpm, такие как pup и pirut.
Если вы успешно зарегистрировались в сети RHN, то для обновления пакетов ОС Linux можно использовать программу pup, которую можно запустить изменю.
Данная программа отображает только те пакеты, для которых доступны обновления в сети Для управления пакетами rpm в среде GN OM E используется графическая программа pirut, которая позволяет устанавливать сразу несколько пакетов с разрешением соответствующих им зависимостей и отображать список уже установленных пакетов. Кроме того, с помощью данной программы можно искать пакеты по базе данных RPM . Запуск программы pirut осуществляется изменю are».
Е Ш М ІІІІІ Модуль 1. Системное администрирование
1.5.2. Менеджер пакетов YUM
Основным недостатком менеджера пакетов RPM является то, что он не разрешает зависимости пакетов в момент их установки. Каждый зависимый пакет необходимо указывать в командной строке, что может быть достаточно трудоемкой задачей. Для решения подобных проблем в ОС Linux имеется менеджер пакетов
YUM (Yellowdog Updater, Modified). Данный менеджер пакетов использует централизованное место хранения пакетов - репозиторий. Репозитории могут находится на локальных файловых системах, H T T P и FT P серверах.
Прежде чем его использовать менеджер пакетов YUM, необходимо настроить подключение к сети RHN или же прописать дополнительные репозитории, содержащие пакеты RPM Менеджер пакетов YUM обладает следующими достоинствами:
• автоматическое разрешение зависимостей пакетов;
• существуют консольная и графическая версии программы;
Менеджер пакетов Y U M
M ill··
43
• можно использовать несколько репозиториев, содержащих пакеты имеется возможность устанавливать пакеты только определенной версии или архитектуры.
Общий синтаксис консольной утилиты управления менеджером YUM следу­
ющий:
yum <команда> <название_пакета1> <название_пакета2>
Д ля установки пакета при помощи менеджера пакетов YUM используется следующий синтаксис команды:
yum install <название_пакета1> <название_пакета2> .
.
.
Д ля установки конкретной версии пакета необходимо запустить команду в следующем виде:
yum install <название_пакета>-<версия>
Д ля установки пакета для определенной архитектуры нужно использовать ключи, как показано ниже:
yum install <название_пакета>.<архитектура>
Д ля обновления пакета необходимо запустить:
yum update <название_пакета>
Если при указании команды yum update будет опущено название пакета, то будет выполнена попытка обновить все установленные в системе пакеты.
Д ля удаления пакета необходимо запустить команду со следующими ключами:
yum remove <название_пакета>
При удалении указанного пакета также удаляются и зависимые пакеты. Напомним, менеджер пакетов RPM этой возможностью не обладает.
Д ля поиска пакетов в репозиториях используется следующая команда:
yum search <название_пакета>
Д ля выполнения различных действий связанных с управлением пакетами rpm, программа yum использует конфигурационный файл /etc/y u m .co n f, в котором указаны параметры репозиториев, содержащих пакеты RPM . В частности, в данном файле указываются параметры кэш ирования данных о пакетах, проверки цифровых подписей GPG, U R I адреса репозиториев. Для просмотра всех директив конфигурационного файла программы yum можно выполнить команду man
yum.conf. Как правило, придерживаются следующей конфигурации менеджера
YUM: в конфигурационном файле /e tc /y u m .c o n f указываются глобальные настройки менеджера, а в каталоге /e tc /y u m .re p o s.d создаются файлы с описанием репозиториев и их параметров. Типовой файл для определения произвольного ре­
позитория YUM имеет следующий вид:
[название_репозитория]
• комментарий
атрибут=значение
атрибут=значение

44
■■■■Illi
Модуль 1. Системное администрирование
Здесь после указания формального названия репозитория в квадратных скобках перечисляются его основные параметры. В следующем листинге приведен пример локального репозитория, содержащего пакеты ОС Linux:
[Server] gpgenabled=l gpgkey=file:///var/www/html/yum/RPM-GPG-KEY-redhat-release file:///var/www/html/
yum/RPM-GPG-KEY-redhat-beta name=Server baseurl=file:///var/www/html/yum/Server/ В данном листинге первые два атрибута указывают на то, что необходимо выполнять проверку цифровых подписей пакетов перед их установкой. Атрибут name задает краткое описание репозитория. Атрибут baseurl, записанный в формате протокол://расположение, задает расположение файлов репозитория. Последний атрибут enable свидетельствует об активации использования данного репозитория.
В целях экономии трафика и ресурсов сети рекомендуется иметь собственный локальный репозиторий пакетов RPM , с периодически выполняемой синхронизацией пакетов с внешним репозиторием пакетов RPM . Для создания локального репозитория и его последующей синхронизции используются команды createrepo пакет createrepo) и reposync (пакет yum -utils) соответственно. Общая последовательность действий для создания локальных репозиториев подробно описана здесь h ttp ://y u m .b aseu rl.o rg /w ik i/R ep o C reate.
1.5.3. Создание пакетов R P M
Умение создавать пакеты RPM по большей части необходимо разработчику, но также будет полезно системному администратору при решении следующих задач:
• Распространение сценариев, конфигурационных файлов и шаблонов на несколько систем;
• Установка программ с измененными параметрами компиляции;
• Упаковка программ в пакеты Использование для этих целей пакетов RPM дает следующие преимущества:
• Контроль версий. Поскольку каждый RPM пакет содержит информацию о версии, то отслеживание изменений в процессе длительного функционирования ОС существенно упрощается.
• Удобство распространения. Установка RPM пакетов нетребует ручной компиляции и может быть выполнена неквалифицированным пользователем, как на локальные, таки на удаленные сиситемы.
• Контроль целостности. Используя опцию проверки RPM пакетов, администратор может легко отслеживать любые изменения в установленных файлах пакетов.
Создание пакетов RPM может выполняться из под пользователя root в спе-
Создание пакетов RPM
M ill··
45
циально отведенном месте или из под обычного пользователя в его домашнем каталоге. Последний вариант более предпочтителен сточки зрения безопасности. Общий процесс создания RPM пакета состоит из следующих этапов. Подготовка окружения для сборки пакетов. Создание файла спецификации (S P E C ).
3. Подготовка и размещение файлов исходного кода или собственных файлов в сборочном окружении. Создание пакета. Подписка пакета (опционально).
Первым этапом в создании RPM пакета является подготовка окружения. Для этого в домашнем каталоге пользователя необходимо создать следующие каталоги- B UILD - в данном каталоге выполняется непосредственная компиляция исходного кода- RPM S - в данный каталог помещаются созданные бинарные пакеты RPM .
- SO U R C ES - данный каталог содержит файлы с исходным кодом- SPECS - данный каталог содержит файлы спецификаций- SRPM S - данный каталог содержит созданные RPM пакеты с исходным кодом.
Д ля создания данного окружения в домашнем каталоге пользователя создается файл .rpmmacros следующего содержания:
%_topdir /home//RPMBUILD
Данный файл указывает программе создания пакетов rpmbuild откуда брать все необходимые данные для сборки пакета. Кроме того, в данном файле могут быть указанны дополнительные параметры, такие как расположение файлов исходного кода и прочее. За образец для данного файла можно взять файл /u s r /lib /
rpm/macros, содержащий глобальные настройки сборки пакетов.
После создания файла .rpmmacros необходимо создать упомянутые каталоги:
mkdir RPMBUILD
mkdir -р RPMBUILD/{BUILD,RPMS,SOURCES,SRPMS,SPECS}
В каталоге
R P M S
также следует создать каталоги для каждой поддерживаемой архитектуры процессоров (х, І, noarch). Здесь каталоги создаются относительно корневого каталога
R P M B U I L D
в целях удобства расположения.
Следующим этапом является создание файла спецификации (.spec), содержа­
щего информацию о пакете, такую как имя, версия и описание, а также специальные инструкции для сборки. Создание файла спецификации является ключевым моментом процесса создания RPM пакета. Данный файл содержит информацию о конфигурации пакета, каким образом следует устанавливать файлы пакета, какие сценарии следует запускать дои после установки пакета. В следующем листинге приведен пример файла спецификации клиента wget:
# This is a sample spec file for wget

■■■Illll
Модуль 1. Системное администрирование
Summary:
License:
Name:
GNU wget
GPL wget
1.12 12
Development/TooIs
% {name}-%{version}.tar.gz
% {_tmppath}/ % {name}-%{version} І б
Version:
Release:
Group:
Source:
BuildRoot:
BuildArch:
%description
The GNU wget program downloads files from the Internet using the command-line.
%prep
%setup -g
%build
./configure --prefix=$RPM_BUILD_ROOT/usr --sysconfdir=$RPM_BUILD_ROOT/etc make
%install
make INSTROOT=$RPM_BUILD_ROOT install
%files
%defattr(-,root,root,-)
%config(noreplace) /etc/%{name}rc
%{ mandir}/manl/%{name}.1*
% {_bindir}/%{name}
% {_infodir}/*
% {_datadir}/locale/*/LC_MESSAGES/%{name}.mo
%doc AUTHORS COPYING ChangeLog MAILING-LIST NEWS По сути файл спецификации представляет собой набор директив и соответствующей им информации. Основные директивы приведенного примера (выделены жирным шрифтом) имеют следующее значение- Summary - Общее описание предназначения пакета- Name - Задает имя пакета (без пробелов- Version - Задает версию пакета, которая включает- R elease - Задает номер релиза.
- License - Определяет тип лицензирования пакета, например GPL.
- Group - Определяет группу (см. приложение

Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   ...   13


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал