Linux - Алексей Стахнов
Шрифт:
Интервал:
Закладка:
Для системного администратора RPM предоставляет следующие возможности:
• модернизировать отдельные компоненты системы или набора пакетов, сохраняя их конфигурацию;
• получать информацию об используемых пакетом файлах;
• получать информацию о зависимостях пакетов (необходимых библиотеках и т. д.);
• производить проверку пакетов;
• выдавать раздельно пакеты в авторском виде и сделанные к ним добавки;
• производить автоматизированное обновление пакетов (например, получение обновлений с FTP-сервера).
Благодаря этому с помощью RPM можно устанавливать, обновлять, удалять пакеты единственной командой в текстовом режиме или несколькими щелчками мышью в графическом менеджере пакетов. Пакет RPM содержит информацию о себе в заголовке пакета. Эта информация при установке пакета добавляется в базу данных установленных пакетов, где содержится информация о том, где находится пакет, какие дополнительные (supporting) пакеты ему необходимы и установлены ли они. Знатоки Windows могут заметить, что централизованная база данных установленных пакетов очень сильно напоминает часто критикуемый реестр Windows. Сравнение, однако, поверхностно. На самом деле, реестр Windows помимо списка установленных программ содержит в себе многочисленные системные настройки, без которых (повреждение или отсутствие реестра) не будет функционировать система в целом. Для Linux отсутствие или повреждение базы данных установленных пакетов вовсе не фатально. Как будет показано далее, базу данных всегда можно попытаться создать заново. Но не это главное. Отсутствие или повреждение базы данных никоим образом не сказывается на работоспособности системы – она полноценно функционирует. Могут возникнуть проблемы с обновлением или установкой пакетов, но их можно обойти с помощью специальных ключей программы RPM (принудительная инсталляция, отказ проверять зависимости и т. п.).
Принципы наименования пакетов
Имя пакета характеризует сам пакет, его версию, версию сборки исполняемых файлов (релиз) и архитектуру и задается в виде «имя_программы-версия-релиз.платформа» или «src.rpm».
Рассмотрим для примера пакет telnet-server-0.17–18.i386.rpm. По названию файла можно определить, что пакет содержит tclnct-ссрвср версии 0.17, версия сборки файлов (релиз) 18 для данной версии пакета Red Hat Linux, собрана для процессора Intel 80386 и выше, формат файла – RPM. Файл пакета, у которого вместо архитектуры (например, i586) стоит src, содержит в себе исходные тексты программы. Иногда встречается немного другая структура именования пакета, например, apache-1.3.3–1.src.rpm. Здесь версия пакета – 1.3.3 – состоит из трех цифр. На инсталляционных дисках Red Hat и на FTP скомпилированные пакеты хранятся в каталоге RPMS, а пакеты, содержащие исходный код, – в каталоге SRPMS.
Структура пакета RPM в данной главе описана не полностью. Вкратце можно сказать, что в пакете содержатся исполняемые файлы, конфигурационные файлы, документация, все дополнительные файлы, напрямую связанные с пакетом, а также информация о том, куда должны устанавливаться файлы пакета и какие другие пакеты необходимы для его функционирования. После успешной установки пакета информация о нем заносится в базу данных системы RPM.
Достоинства RPM
К основным достоинствам RPM относятся:
• удобная установка программ;
• возможность инсталляции по FTP;
• проверка системы на наличие компонентов, необходимых устанавливаемому пакету;
• простое удаление пакетов из системы. При этом осуществляется проверка зависимостей пакетов системы от удаляемого пакета;
• обновление (Upgrade) пакетов с контролем версии, запрет установки пакета с более ранней версией, чем установленный в системе (Degrade);
• просмотр информации о пакете: что делает, кто сделал, где взять, файлы, содержащиеся в пакете, и т. д.;
• наличие общей иерархии пакетов, с помощью которой просто определить, к какой категории программ относится пакет;
• обеспечение возможности определения принадлежности файла или каталога к пакету;
• комплексная проверка состояния пакетов в системе: что изменялось, что испортилось, что случайно удалили и т. д.;
• отсутствие необходимости производить перезагрузку системы после инсталляции нового пакета. Пакет готов к эксплуатации сразу после установки.
Недостатки RPM
Пакет RPM имеет и недостатки:
• многие программы пакета обновляются позже, чем официально выходят версии программного обеспечения;
• отсутствие RPM для некоторых программ;
• централизованная база установленных пакетов.
Информация, содержащаяся в пакете
Каждый пакет RPM содержит в себе стандартный набор полей, которые характеризуют содержание пакета. Наиболее интересные для пользователя поля приведены ниже.
• Build Host – имя хоста, на котором производилась сборка пакета;
• Build Date – время сборки пакета;
• Change Log – краткий список изменений в программе, по сравнению с предыдущими версиями;
• Copyright – копирайт владельца;
• Description – описание пакета, обычно 1–2 Кбайт текста;
• Group – группа/подгруппа программного обеспечения, к которому относится пакет. К примеру – Development/Languages;
• License – лицензия, по которой распространяется пакет. Для большинства программ, поставляемых в дистрибутиве, лицензия – GPL. Для большинства библиотек – LGPL;
• Name – имя программы, к примеру apache;
• Version – версия программы;
• Release – релиз (версия сборки);
• RPM version – версия пакета RPM: для Red Hat Linux 1 х версия 4, для более ранних – версия 3;
• Size – размер в байтах;
• Source RPM – пакет с исходными кодами, на базе которого собирался бинарный пакет. Например: gcc-2.96–85.src.ipm;
• Summary – краткое, в одно-два предложения описание пакета. Например: The С Preprocessor;
• URL – Web-адрес разработчика программы;
• Vendor – сборщик пакета, например: Red Hat, Inc.
Категории пакетов
Для удобства пользователей пакеты содержат в себе признак, указывающий, к какой категории программного обеспечения относится пакет (поле Group). Стандартная иерархия пакетов приведена на рис. 8.1.
Рис. 8.1. Стандартная иерархия пакетов
Ниже дана краткая расшифровка категорий пакетов.
• Amusements – развлечения. К этому разделу обычно относятся игры и всякие бесполезные, но веселые программки – глаза, которые следят за курсором, котенок, бегающий по экрану, и т. п.:
– Games – подраздел предназначен для игр;
– Graphics – всякие забавные графические программы, в том числе хранители экрана (screensavers).
• Applications – приложения. Раздел предназначен для пользовательских (в широком смысле) программ. Как правило, сюда помещаются программы общего назначения: редакторы, инженерные пакеты, средства мультимедиа:
– Archiving – подраздел, посвященный программам и утилитам архивации;
– Communications – подраздел, содержащий все, что относится к связи. Здесь собраны разнообразные программы и утилиты для работы с модемами, факсами, ISDN, ATM, радиосвязью и многое другое;
– Databases – подраздел, посвященный базам данных и разнообразным утилитам для взаимодействия с базами данных;
– Editors – редакторы. В этом разделе хранятся разнообразные редакторы, от очень простых консольных редакторов до графических монстров;
– Engineering – подраздел, посвященный инженерным пакетам: редакторы схем, формул, химических соединений, чертежные пакеты и тому подобные приложения;
– File – подраздел, содержащий утилиты для работы с файлами;
– Internet – программы, предназначенные для работы в Интернете: Web-браузеры, почтовые клиенты, клиенты ICQ и новостей, чатов и FTP;
– Multimedia – все для мультимедиа: проигрыватели CD, MP3-файлов, программы для просмотра телепередач и приема радиостанций, микшеры и т. д.;
– Productivity – подраздел для программ, позволяющих увеличить производительность труда: органайзеры, напоминалки, картотеки и т. п.;
– Publishing – подраздел для программ подготовки документов к печати: программы верстки, разметки и т. п.;
– System – подраздел для системных программ. Здесь могут быть программы, предназначенные только для администратора, и программы, интересные только для пользователя;
– Text – подраздел для программ и утилит работы с текстом: поиск слов и фраз, замены и т. п.
• Development – раздел, полностью посвященный программированию и программистам: отладчики, компиляторы, библиотеки разработчика, различные утилиты:
– Debuggers – подраздел для программ-отладчиков;
– Languages – подраздел, посвященный языкам программирования, компиляторам, интерпретаторам;
– Libraries – подраздел для библиотек: по большей части библиотеки разработчика, не системные;
– System – подраздел для системных утилит;
– Tools – подраздел для различного инструментария программиста, не попавшего в предыдущие подразделы.
• Documentation – раздел для документации, поставляемой отдельно от программ.
• System Environment – раздел системного окружения, наиболее ориентированный на ядро системы:
– Base – подраздел для базовых пакетов;