Шрифт:
• удобная установка программ;
• возможность инсталляции по 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 – подраздел для базовых пакетов;
– Daemons – подраздел исключительно для демонов (daemon, демон – программа, выполняющая некоторые системные функции или являющаяся сервером каких-то услуг, сервисов);
– Kernel – подраздел, предназначенный исключительно для ядра Linux как в двоичном виде, так и в исходных кодах;
– Libraries – подраздел для системных библиотек;
– Shells – подраздел для хранения разнообразных командных оболочек.
• User Interface – раздел пользовательского интерфейса. Вернее было бы назвать его разделом, посвященным X Window:
– Desktops – подраздел, посвященный различным оконным менеджерам;
– X – пакеты, относящиеся к X Window;
– X Hardware Support – подраздел содержит пакеты, ориентированные на конкретный тип видеокарт.
Команды консольного менеджера RPM
Раздел полностью посвящен консольному менеджеру RPM. Понятно желание пользоваться графическими менеджерами пакетов – красиво, наглядно, удобно, просто, в конце концов. Но не следует забывать, всегда может случится так, что у вас не будет возможности загрузить X Window (например, необходимо установить новую версию X Window), да и возможностей у RPM побольше, а ресурсов он потребляет несравненно меньше. Тем более, что еще никто не отменял дистанционное администрирование, при котором вообще невозможно воспользоваться графическими пакетами. Раздел практически полностью основывается на содержимом шап-страницы RPM.
Итак, использование RPM, Менеджера пакетов от Red Hat. Может быть выбран один из следующих основных режимов:
• инициализация базы данных;
• пересборка базы данных;
• сборка пакетов;
• рекомпиляция пакетов;
• сборка пакетов из tar-архивов;
• запрос;
• показ полей запроса;
• установка;
• обновление;
• удаление;
• верификация;
• проверка подписи;
• повторная подпись;
• добавление подписи;
• установка владельцев и групп;
• показ конфигурации.
Общие опции
Общие опции могут быть использованы во всех режимах работы:
• -vv – выводить много отладочной информации;
• -quiet – выводить как можно меньше сообщений: как правило, выводятся только сообщения об ошибках;
• -help – вывести более детальную, чем обычно, справку об использовании RPM;
• -version – вывести одну строку, содержащую номер версии используемого RPM;
• -rcfile <список_файлов> – каждый из файлов из разделенного двоеточиями <списка_файлов> последовательно читается RPM на предмет конфигурационной информации. По умолчанию <список_файлов> выглядит как /usr/lib/ipm/ipmrc:/etc/ipmrc:~/.ipmrc. В этом списке обязана существовать только первая строка; все тильды будут заменены значением $номе;
• -root <каталог> – использовать для всех операций файловую систему с корнем в <каталог>. Обратите внимание, это значит, что база данных также будет читаться и модифицироваться под <каталог> и все pre– и post-скрипты будут исполняться после chroot в <каталог>;
• -dbpath <путь> – использовать базу данных RPM в <путь>;
• -justdb – обновить только базу данных, не файловую систему;
• -ftpproxy <host> – использовать <host> как FTP-прокси (см. разд. «Опции FTP/HTTP»);
• -httpproxy <host> – использовать <host> как НТТР-прокси (см. разд. «Опции FTP/HTTP»);
• -ftpport <порт> – использовать <порт> как FTP-порт прокси-сервера (см. разд. «Опции FTP/HTTP»);
• -httpport <порт> – использовать <порт> как HTTP-порт прокси-сервера (см. разд. «Опции FTP/HTTP»);
• -pipe <cmd> – перенаправляет вывод RPM на вход команды <cmd>.
Опции установки и обновления
Общая форма команды установки новых RPM выглядит так:rpm -i [опции-установки] <файл_пакета>
Общая форма команды обновления установленных RPM выглядит так:
rpm -U [опции-установки] <файл_пакета>
Команда обновления установленных пакетов полностью аналогична работе команды установки за исключением того, что если уже был установлен пакет, rpm проверяет версию установленного пакета и если она меньше версии нового пакета, происходит удаление установленного пакета и установка нового. Или более просто, если пакет не был установлен, эта команда производит установку, а если был установлен и имеет более раннюю версию, то происходит замена более ранней версии на новую.
rpm -F [опции-установки] <файл_пакета>
Или
rpm -freshen [опции-установки] <файл_пакета>
Эта команда производит обновление пакетов, но только если в системе существуют более ранние версии этих пакетов.
Допускается задание <файл_пакета> в виде FTP– или HTTP-адресов (например,. В этом случае перед установкой пакет будет получен с сервера, указанного в адресе. Подробную информацию о встроенной поддержке FTP/HTTP см. в разд. «Опции FTP/HTTP» данной главы.
Опции:
• -force – то же, что и комбинация – replacepkgs, – replace-ffiilleess и – oidpackage. Принудительная установка пакета, невзирая на наличие неудовлетворенных зависимостей или уже установленных пакетов, и моющих более позднюю версию;
• -h, -hash – выводить 50 раз знак # по мере распаковки архива с пакетом. Используется с -v для придания читабельного вида. Можно использовать при автоматической установке пакетов, когда результат инсталляции выводится в журнальный (лог, log) файл;
• -oidpackage – позволяет заменить новый пакет на более старый при обновлении (откатиться назад). Как правило, необходимость отката (rollback) возникает в двух случаях: первый – при смене версий программного обеспечения (например, компилятор gcc поменял версию с 2.9х на 3.0), а новая версия имеет недостатки в функционировании (подвисает, исчезли необходимые вам свойства программы и т. д.). Второй – новая версия программного обеспечения конфликтует с уже установленными пакетами (не те версии библиотек, другой формат вызова модулей и т. п.);
• -percent – выводить процент готовности по мере распаковки архива с пакетом. Задумано для облегчения использования RPM из других утилит;
• -repiacef iies – устанавливать пакеты, даже если они перепишут файлы из других, уже установленных пакетов;
• -replacepkgs – устанавливать пакеты, даже если некоторые из них уже установлены в системе;
• -aiifiles – устанавливать или обновлять все файлы, определенные как missingok (согласно базе RPM – отсутствующие файлы в системе для данного пакета), даже если они уже существуют;
• -nodeps – не проверять зависимости перед установкой или обновлением пакета;
• -noscripts – не исполнять pre– и post-установочных скриптов;
• -notriggers – не исполнять триггер-скриптов, взведенных на установку данного пакета;
• -ignoresize – не проверять файловую систему на наличие достаточного свободного места перед установкой этого пакета;
• -exciudepath <путь> – не устанавливать файлы, чьи имена начинаются с <путь>;
• -exciudedocs – не устанавливать никаких файлов, отмеченных как файлы документации (включает man-документацию и документы texinfo);
• -inciudedocs – устанавливать файлы документации. Это поведение по умолчанию;
• -test – не устанавливать пакет, просто проверить возможность установки и сообщить о потенциальных проблемах;
• -ignorearch – произвести установку или обновление, даже если архитектуры бинарного RPM и машины не совпадают;
• -ignoreos – произвести установку или обновление, даже если операционные системы бинарного RPM и машины не совпадают;
• -prefix <путь> – установить префикс установки в <путь> для переместимых пакетов;
• -relocate <старый_путь>=<новый_путь> – для переместимых пакетов: преобразовывает в <новый_путь> файлы, которые должны были бы быть установлены в <старый_путь>;
• -badreioc – для использования вместе с – relocate. Производит перемещение, даже если пакет непереместимый;
• -noorder – не переупорядочивать список устанавливаемых пакетов. Обычно список переупорядочивается для удовлетворения зависимостей.