Управление пакетами в RHEL - rpm. Установка rpm пакетов в Linux Что означает rpm

💖 Нравится? Поделись с друзьями ссылкой

Red Hat Package Manager (RPM) представляет собой набор инструментальных средств, служащих для создания и управления программными пакетами в Unix-системах. RPM, поставляемый вместе с Red Hat Linux и производными от него дистрибутивами, может работать с любым вариантом Unix, поскольку распространяется в исходных текстах. Однако найти RPM-пакеты для других диалектов Unix непросто.

Хотя управление пакетами строится на довольно тривиальных принципах, его реализация может оказаться делом непростым. Конечно, контролируемая установка ПО, управление уже установленными программными пакетами и их удаление из системы трудностей не представляет. RPM был создан в связи с необходимостью выполнять такие операции эффективно; другого содержательного решения тогда не было.

RPM, в отличие от ряда других менеджеров программных пакетов для Unix, использует собственный формат файлов. Это может породить серьезные проблемы, если потребуется выделить какой-то один компонент из пакета, а утилиты RPM под рукой нет. К счастью, существуют такие инструменты, как Alien, позволяющие получить файлы в формате, который допускает управление, скажем, с помощью tar или ar.

Схема именования файлов RPM сама по себе является стандартизованной конвенцией. Названия RPM имеют формат (имя)-(версия)-(сборка).(платформа).rpm. Например, название cat-2.4-7.i386.rpm используется для обозначения RPM-пакета для утилиты cat версии 2.4, сборки 7 для платформы x86. Если вместо названия платформы указано src, значит, речь идет об исходных текстах.

Зачем нужно управление пакетами?

Для небольших утилит, таких, как, скажем, cat, которые имеют один исполняемый модуль и одну страницу справочника man, RPM не нужен. Но возьмем, например, KDE, включающий множество компонентов и зависимостей и требующий их повсеместного соблюдения. Отследить их все крайне сложно, если вообще возможно.

Управление пакетами существенно упрощает задачу. Позволяя программе поддерживать информацию о своих объектных модулях, своих файлах конфигурации и обо всем остальном, что ей требуется, вы можете указать, какие из них следует устанавливать, легко удалить их или без труда обновить.

Установка происходит без сучка и задоринки. Вы выбираете то, что вам нужно, и просите систему выполнять за вас «грязную» работу: распаковать программу, убедиться, что места хватает, разместить все в нужном порядке и установить. Отследить зависимости и дополнительные требования программного пакета для хорошего менеджера пакетов тоже не составляет труда.

Управление установленными пакетами также прекрасно осуществляется хорошей системой управления пакетами. Система хранит полный список установленного ПО, который стоит посмотреть, если вы решили что-то установить. Еще важнее то, что такая система позволяет без труда модернизировать имеющиеся решения. Наконец, с ее помощью просто провести проверку корректности пакетов. Зная, какие пакеты установлены и каковы свойства их компонентов, можно быстро диагностировать проблему и с успехом ее устранить.

RPM и другие

Коротко говоря, основное мое недовольство RPM связано с отсутствием для него мощного графического пользовательского интерфейса. При том, что кое-какие интерфейсы есть (такие как gnorpm и glint), в них отсутствуют более сложные функции, реализованные в SGI Software Manager. В целом, я считаю, что RPM лучше выполняет разбор и разрешение конфликтов, чем inst, и намного, намного быстрее. Так что я согласен обойтись и без мощного графического интерфейса.

В RPM меня больше всего восхищает скорость и проверка пакетов, выполняемая с помощью сигнатур пакетов и контрольных сумм компонентов. К примеру, однажды мне пришлось перезагружать SGI Software Manager только потому, что я с ошибками переустановил редактор jot. На установку этого небольшого пакета ушло около 15 минут, не считая перезагрузки.

RPM объединяет несколько файлов в одном архиве и выполняет сжатие архива для создания тела пакета RPM. Более того, вставляется дополнительная заголовочная информация, включающая в себя скрипты, выполняемые перед и после установки для подготовки системы к установке нового пакета, а также информацию для базы данных, которую поддерживает RPM. Зависимости проверяются перед установкой каждого пакета; в соответствии с приведенными флагами могут устанавливаться дополнительные компоненты.

RPM способен творить чудеса именно, благодаря этой своей базе данных.

Установка с помощью RPM

Это базовая функция RPM и одна из наиболее популярных. Для этого запустите команду

rpm -i (пакет)

В случае, если все пойдет хорошо, пакет будет установлен, и вы получите приглашение на ввод команды без каких-либо сообщений. Прискорбнее, если вам понадобится узнать, почему вас постигла неудача. Если указать флаг -h, то можно наблюдать на экране «термометр», заполняемый значками #. Судя по всему, многим нравится использовать флаги -ivh вместе:

rpm -ivh (пакет)

И опять-таки, в этом случае вы немногое узнаете о том, что происходит. Только то, что процесс установки идет без сбоев. Я же, как правило, стремлюсь при установке нового пакета получить всю возможную информацию (-vv). Это позволяет мне видеть, что происходит:

rpm -ivv (пакет)

Хотя выводимая на экран информация обычно прокручивается, она дает возможность точно знать, не возникло ли каких-то проблем. Плюс к тому, понятно, какие модули уже установлены.

Зависимости RPM поддерживает достаточно разумным образом, но все это в немалой степени определяется качеством модуля сборки пакетов. Я встречал пакеты, которые зависели от себя сами, и те, которые, казалось, зависят от пакетов, портящих что-то другое. Помните об этом.

Иногда RPM будет выдавать замечания по поводу пакетов, которые установлены, но не зарегистрированы. Возможно, вы установили их без помощи RPM (скажем, OpenSSL). Чтобы избавится от таких замечаний, вы можете заставить RPM игнорировать зависимости:

rpm -ivv -nodeps (пакет)

Нужно отметить, что это не всегда разумно и это следует делать только тогда, когда вы точно знаете, во что ввязываетесь. Довольно редко можно повредить уже установленные модули, но иногда установленный пакет не будет работать корректно.

В редких случаях RPM будет создавать путаницу и настаивать на том, что вы установили пакет, хотя вы этого явно не делали. Хотя, как правило, подобный случай свидетельствует о какой-то ошибке, ее тоже можно обойти. Просто принудительно установите пакет:

rpm -ivv -force (пакет)

Будьте осторожны. Точно так же, как и в том случае, когда вы игнорировали зависимости, принудительная установка пакета может оказаться неблагоразумной. Помните, что ваша система может перестать работать. Пеняйте на себя.

Вероятно, самой большой наградой вам станет возможность использовать одну из потрясающих функций RPM: установку по сети. Иногда, в системе нет сетевых клиентов, а вам необходимо их установить через RPM. Для этого в RPM встроено программное обеспечение клиентов Web и FTP:

rpm -iv ftp://ftp.redhat.com/ path/package.rpm

rpm -iv http://www.me.com/ path/package.rpm

Управление пакетами

Предположим, что вы хотите работать с какими-то из имеющихся пакетов, вне зависимости от того, установлены они или нет. Можно воспользоваться функциями управления для тех пакетов, которые уже установлены, и для тех, которые не установлены. Также есть возможность провести проверку корректности пакетов.

Когда в ваши руки попадает новый пакет, иногда хочется исследовать его, чтобы понять, какие именно возможности он предлагает. Это можно сделать с помощью режима запросов.

rpm -qip (пакет)

Все это замечательно, но, предположим, вы хотите узнать, что именно входит в состав данного пакета, из каких файлов он состоит? Да, вы можете просмотреть содержимое пакета во многом так же, как получить таблицу содержимого архива tar (с помощью tar -tvf):

rpm -qlp (пакет)

Это будет список всех файлов в архиве с их полными именами, в том числе названиями каталогов. Я часто пользуюсь этой опцией, чтобы понять, нужно ли устанавливать пакет, но, самое важное, где его устанавливать. Я предпочитаю придерживаться соглашения о том, что модули следует размещать в предназначенных для них местах, однако некоторые менеджеры пакетов этого не делают. Наконец, чтобы увидеть все пакеты, которые вы установили в своей системе, используйте:

rpm -qa

Вам будет выдан список пакетов, установленных в системе.

Одна из самых замечательных, с моей точки зрения, возможностей RPM - проверка корректности пакетов. Она часто бывает полезна при поиске засбоившего компьютера или исполняемого модуля, который мог быть пропущен или изменен вследствие какой-то вашей ошибки. Чтобы проверить корректность пакета, используйте флаг -V:

rpm -V (пакет)

Проверить корректность всех пакетов, установленных в системе, тоже довольно просто:

rpm -Va

Режим проверки корректности позволяет получить некоторые статистические данные о файле.

5 Сумма MD5; S Размер файла; L Символьная ссылка; T Время модификации; D Устройство; U Пользователь; G Группа; M Режим (включая права доступа и тип файла)

Иногда эти данные бессмысленны, например, если вы меняете файл /etc/inetd.conf, то размер и сумма MD5 будут изменяться. Однако некоторые вещи меняться не должны, такие как /bin/login. Команда rpm -Va может оказаться полезной для выполнения быстрой проверки защиты, позволяя понять, на что именно в первую очередь следует обратить внимание.

Одной из примечательных особенностей управления пакетами, как можно заметить, является легкость, с которой можно выполнять модернизацию. RPM имеет две возможности модернизации пакетов, которые иногда путают. Первая из них - простая модернизация:

rpm -U (пакет)

Путаница здесь возникает из-за действий, предпринимаемых менеджером пакетов в том случае, если пакет еще не установлен. Если пакет найден, он модифицируется. Если он не найден, то до него модифицируется система, а пакет устанавливается. Иногда это может вызвать недоумение, если вы не хотели устанавливать пакет и выполнять модификацию, которая следует автоматически. Я предлагаю «освежать» только те пакеты, последнюю версию которых вы действительно хотите иметь:

rpm -F (пакет)

В этом случае будут модифицированы только установленные пакеты, и, если пакет не найден, то устанавливаться он не будет.

Модификация тоже выполняется весьма интересным образом. Сначала устанавливается новая версия и отмечаются ее отличия от старой. Затем старая версия удаляется, но только отдельные ее части так, чтобы не затронуть новые компоненты. Представьте, если /usr/local/bin/netscape был изменен, а затем удален, то все усилия пропали бы даром!

Удаление пакетов

Вы можете устанавливать, обновлять и управлять пакетами и, конечно же, вы можете деинсталлировать пакеты с помощью RPM. Чтобы «безоговорочно» удалить пакет RPM, используйте:

rpm -e (пакет)

В отличие от установок и модернизаций, при удалении для указания пакета следует использовать не название «пакет-версия.i386.rpm», а просто «пакет-версия». Это имена, которые выводятся на экран в режиме запроса и именно их и следует указывать. Вы должны дать менеджеру пакетов возможность удалить все компоненты пакета, указав самую общую часть имени, например, для linuxconf и linuxconf-devel это будет linuxconf. Можно также обойтись без зависимостей:

rpm -e -nodeps (пакет)

Здесь вы вновь берете риск на себя, поскольку можете в итоге удалить больше, чем рассчитываете. Можно, как и при установке, добавить флаги, чтобы получить более детальную информацию.

Некоторые замечания о RPM

Иногда разработчики создают довольно странные зависимости для своих RPM-пакетов. Возьмем, к примеру, libsafe. Он имеет четко определенную зависимость: itself («сам от себя»). В этом случае корректно установить пакет можно только с флагом -nodeps. В другой раз пакет может содержать дополнительные фрагменты, и, возможно, придется устанавливать больше, чем вы рассчитывали.

Больше всего в пакетах RPM мне не нравится то, что они имеют имена, которые не соответствуют функциям. Хотя это соглашение можно обойти с помощью инструментария запросов, как было описано, но это требует больше времени, чем я готов потратить. Советую давать своим RPM-пакетам максимально корректные имена.

RPM можно использовать с любым вариантом Linux/Unix, поскольку он распространяется в исходных текстах. RPM распространяется в рамках Red Hat Linux и некоторых производных от него дистрибутивах. Рекомендуется использовать версии 3.0 и выше, чтобы обеспечить совместимость. Версия 4.0, как сообщается, имеет другой формат базы данных, поэтому я рекомендую разобраться, как разрешить эту проблему, прежде чем модернизировать свой RPM до версии 4.0. Не уверен, что для этого достаточно просто реконструировать базу данных в 4.0.

RPM обычно сам распространяется как RPM-пакет. Понятно? К счастью, он также поставляется и в виде архива, подготовленного с помощью gzip tarball, и непосредственно в исходных текстах. У меня, к примеру, RPM установлен на Slackware, но его можно установить и на SGI Irix или Sun Solaris, если потребуется. Впрочем, он практически бесполезен на других платформах помимо Linux, поскольку для других вариантов Unix пакеты готовятся средствами RPM крайне редко.

Хосе Назарио - аспирант факультета биохимии университета Case Western Reserve University. Он работает с Unix почти десять лет, а с Linux - с версии ядра 1.2.

Copyright (c) Хосе Назарио. Данный материал распространяется в соответствии с правилами и условиями, определяемыми «Лицензией на Открытые Публикации» (см. ее текст по адресу http://wwww.opencontent.org/openpub/ ). Jose Nazario, Using RPM: The Basics (Part I). Linux Gazette, Issue 68, July 2001 (www.linuxgazette.com ). Перевод на русский язык: Галина Никитина, сентябрь 2001.

Ресурсы

Лучше всего начать с Web-сайта, посвященного RPM и расположенного по адресу http://www.rpm.org/ . Здесь вы найдете книгу Maximum RPM, в которой рассказывается, как использовать, создавать и даже программировать с помощью API-интерфейсов RPM. Страница помощи RPM (rpm -h) также достаточно полезна, если знать некоторые основы. Архивы RPM можно найти по адресу http://www.rpmfind.net/ , где поддерживается большая база данных поиска пакетов для множества вариантов и версий на различных платформах. Крайне полезно.

Для установки, удаления и обновления программ в дистрибутивах RHEL, Fedora, Mandriva, AltLinux и некоторых других используется менеджер пакетов rpm . Менеджер пакетов rpm позволяет устанавливать, удалять, верифицировать пакеты соответствующего формата, но не имеет средств для автоматического разрешения зависимостей и поиска в репозиториях. Для автоматизации установки пакетов можно воспользоваться программой yum (Yellowdog Update Manager), которая автоматически разрешает зависимости между пакетами и подгружает необходимые файлы. При необходимости собрать пакет с программой из исходных текстов можно воспользоваться rpmbuild . Для этого необходимо подготовить пакет в формате.src.rpm, включающий исходные тексты программы и.spec файл, описывающий процесс сборки.

Структура пакета

Пакеты именуются по следующей схеме: имя-версия-сборка. Распространяются пакеты в виде файлов, в название которых добавляется.архитектура.rpm . Например, squid-2.5.STABLE8–1.FC3.1.i386.rpm расшифровывается так: программа squid , версия 2.5.STABLE8 , сборка 1.FC3.1 , архитектура i386 (неоптимизированное приложение под i386 совместимые процессоры). Номер сборки может включать название дистрибутива (FC3 в данном случае, а может и не включать). Архитектура noarch означает скрипты, независимые от архитектуры процессора. Файлы.src.rpm содержат исходные тексты программ и устанавливаются особым образом.

Каждый пакет содержит файлы программ, библиотек, конфигурации, документации и пр., упакованные архиватором cpio . Также пакет содержит дополнительные секции:

  • PROVIDE – предоставляемая функциональность (например, “mail server”) плюс файлы пакета;
  • REQUIRENAME – необходимые для корректной работы пакеты, файлы и т.п. (то, что требуется в REQUIRENAME , должно присутствовать в PROVIDE ранее установленных пакетов);
  • OBSOLETES – список пакетов, которые могут быть удалены т.к. их функциональность и/или файлы заменяютя данным пакетом;
  • PREIN, POSTIN – скрипты, выполняемые до установки (например, остановка обновляемого демона), и скрипты, выполняемые после установки (например, правка конфигурационных файлов под конкретную машину);
  • PREUN, POSTUN – скрипты, выполняемые при удалении;
  • SUMMARY – краткое описание пакета;
  • DESCRIPTION – подробное описание.

Кроме того, каждый пакет принадлежит к некоторой группе Интернет, Разработка Программ, Развлечения и т.п. Просмотреть секции rpm файла можно в mc.

В дальнейших описаниях <пакет> означает имя пакета без i386.rpm (если установлена одна версия программы, то номер версии и сборки тоже можно опустить), а <файл> означает имя файла.rpm. В качестве файла можно указывать его URL, например, http://download.fedora.redhat.com/pub/fedora/linux/core/updates/3/i386/yum-2.2.0-0.fc3.noarch.rpm

Установка, удаление, обновление программ

Вспомогательные опции: -v – подробный вывод сообщений, -h – показ индикатора прогресса установки.

rpm -ivh <файл>... – установить пакет(ы)
rpm -Uvh <файл>... – обновить пакет(ы), если не установлены – установить
rpm -Fvh <файл>... – обновить уже установленный(е) пакет(ы)
rpm -e <пакет>... – удалить пакет(ы)

Просмотр информации об установленных пакетах или файлах rpm

Вспомогательные опции: -a – все установленные пакеты, -p – информация о файле rpm (в примерах будут приведены не везде).

rpm -q <пакет>... – проверка на наличие установленного пакета и его версии
rpm -qa - список всех пакетов
rpm -qi <пакет>... – DESCRIPTION пакета
rpm -qip <файл>... – DESCRIPTION файла
rpm -qR <пакет>... – REQUIERS пакета
rpm -ql <пакет>... – список файлов пакета
rpm -qf <файл_в_файловой_системе>... – определение принадлежности произвольного файла к одному из установленных пакетов

Проверка целостности rpm пакета

Файлы, размещенные в rpm пакете, сопровождаются вычисленной контрольной суммой и, как правило, подписаны цифровой подписью сборщика пакета. После установки пакета контрольные суммы и подписи сохраняются в базе установленных пакетов. Эти вспомогательные данные позволяют выполнить несколько проверок, например, можно проверить, что пакет создан доверенным издателем и что файлы пакета не были подменены после установки.

Первая проверка очень важна при скачивании пакетов из интернета, а вторая при подозрении на взлом компьютера.

Публичные ключи для проверки подписи автоматически устанавливаются при установке из дистрибутива, а также полуавтоматически добавляются при установке rpm пакетов для подключения репозиториев yum . Файлы с ключами в CentOS устанавливаются в каталог /etc/pki/rpm-gpg/ . Можно добавить ключ вручную, указав путь к локальному файлу или его url. Файл с ключем должен иметь текстовый формат "ASCII armored"

Rpm --import PUBKEY-file

После инсталляции к ключам применимы те же команды, что и к установленным пакетам

rpm -qa gpg-pubkey* – список всех ключей
rpm -qi gpg-pubkey-db42a60e – информация (в том числе имя хозяина) о конкретном ключе
rpm -e gpg-pubkey-db42a60e – удаление ключа

Проверка файла пакета на целостность

Rpm --checksig <файл>

Проверка установленного пакета на целостность

Rpm --verify <пакет>

После выполнения этой команды будет выдан список изменившихся файлов с указанием, что именно в них поменялось. Информация о типе изменений состоит из строки аббревиатур, включающих:

  • S – размер (Size)
  • M – тип файла или права доступа (Mode)
  • 5 – контрольная сумма (MD5)
  • D – мажор или минор устройства устройства (Device)
  • L – содержимое символической ссылки (Link)
  • U – владелец (User)
  • G – группа (Group)
  • T – время модификации (mTime)
  • P – капабилити (caPabilities)

Извлечение и упаковка файлов rpm пакета

Программа rpm2cpio извлекает файлы из RPM пакета в формате архива cpio . Для распаковки файлов вместе со структурой каталогов используется команда cpio с опциями -i – распаковать и -d – создать каталоги:

rpm2cpio <файл.rpm> | cpio -i -d

rpmrebuild

Особые случаи

Eсли пакет уже установлен и его надо переустановить или необходимо понизить версию пакета, то можно к командам инсталяции или обновления добавить опцию --force .

Если установка или удаление пакета формально нарушает зависимости, но известно, что все будет хорошо, то используется опция --nodeps .

Когда покупатель пытается собрать себе компьютер из комплектующих самостоятельно или просто выбирать жесткий диск для ПК, то часто сталкивается с понятием "RPM". Что это такое и является ли оно важным? RPM - это не просто важный, а один из ключевых параметров жесткого диска, который нужно учитывать в первую очередь при выборе. Давайте детальнее разберемся, что это - RPM.

Понятие

Аббревиатура RPM (Rounds per minute) на русский язык дословно переводится как "Обороты в минуту". Это единица обозначает жесткого диска, но само по себе понятие ничего не говорит обычному пользователю. RPM жесткого диска играет роль в производительности системы, и чем выше будет скорость вращения, тем быстрее будет работать вся система в целом. Чаще всего в характеристиках к жесткому диску указывается этот параметр, и между двумя твердыми носителями желательно выбирать тот, у которого RPM будет выше.

Если взять два одинаковых по всем параметрам диска, но с разной скоростью вращения шпинделя, то можно сразу заметить существенную разницу в производительности системы.

Что такое шпиндель?

Жесткий диск состоит из нескольких герметизированных круглых пластин, которые находятся друг на друге и покрыты слоем ферромагнитного материала. Также в корпусе находится и считывающая головка. Эти пластины при работе вращаются с помощью шпинделя - специального вращающего вала. Этот вал приводится в движение электродвигателем. При вращении пластин считывающие головки не касаются поверхности дисков, однако находятся на максимально близком к ним расстоянии. В результате с помощью головок можно записывать и считывать информацию с твердых носителей - дисков.

В течение тысяч часов шпиндель стабильно вращает пластины с огромной скоростью, поэтому данный элемент должен быть надежным. Благодаря отсутствию прямого физического контакта между шпинделем и диском на последний можно записывать и стирать информацию. Считается, что в среднем на один диск можно записать и стереть информацию 100 тысяч раз.

Вот так выглядят шпиндели жестких дисков. Конечно, они могут отличаться в зависимости от модели устройства и производителя.

Итак, мы выяснили, что это - RPM. Параметр определяет, при какой скорости могут вращаться пластины при нормальном режиме работы. В свою очередь это позволяет понять, как быстро компьютерная система сможет получить информацию от жесткого диска при обращении к нему. Чем выше скорость, тем быстрее будет происходить обмен данными между системой и диском.

Как это работает?

Чтобы понять точнее, что это - RPM, необходимо понять принцип работы самого устройства. При запросе определенной информации блок магнитных головок переходит к запрошенной дорожке. На это требуется определенное время для поиска (Seek latency). После того как считывающие головки перемещаются в нужный сектор, необходимо дождаться поворота дисков, чтобы нужный участок оказался под считывающей головкой. Этот участок времени называют задержкой на вращение. Именно этот параметр зависит от скорости вращения шпинделя, и чем он будет выше, тем задержка на вращение будет ниже.

Обе задержки (на перемещение шпинделя и на вращение дисков) определяют скорость доступа системы к данным. Многие программы тестирования производительности просчитывают данный параметр и выводят его под строками "Access to data time". Это позволяет определить реальную скорость работы диска. Данный параметр непосредственно влияет на производительность всей системы. Сегодня есть множество мощных ноутбуков, которые оснащаются мощными видеокартами и процессорами, большим объемом оперативной памяти. Но при этом совместно с хорошим "железом" используются очень медленные жесткие диски со скоростью вращения в 5400 оборотов в минуту. В результате все эти мощные комплектующие не работают на полную мощность из-за низкой скорости доступа к данным. Так что RPM диска важен наравне с частотой процессора и шириной шины видеокарты.

Влияние RPM HDD на производительность

Винчестеры (так часто называют жесткие диски) могут быть формата LFF и SFF. Если говорить проще, то один тип дисков имеет формат 2.5 дюйма, другой - 3.5 дюйма. Первый часто используется в ноутбуках и серверах, второй - в обычных системных блоках. Именно этот тип жесткого диска чаще всего отличается высокой скоростью вращения шпинделя - 7200 оборотов в минуту. В таких моделях время совершения полуоборота составляет 4.2 мс, а среднее время поиска равно 8.5 мс. Следовательно, время доступа к данным будет составлять 12.7 мс.

Отметим, что в большинстве стационарных компьютерах используются винчестеры SATA. 7200 RPM - это стандартная скорость для таких моделей. Бывают также диски с 5400 RPM, но их не рекомендуется использовать на современных системах, хотя стоят они дешевле. Есть также диски параметром 10000 RPM - в таких моделях задержки на поиск и вращение составляют около 3 мс. Подобные устройства чаще всего применяются на игровых компьютерах, однако даже их можно назвать устаревшими. В современных настольных ПК и ноутбуках все чаще применяют диски SSD, принцип работы которых совершенно другой. Об этом расскажем немного позже.

Нестандартный параметр RPM

Есть также на рынке модели со скоростью вращения шпинделя 15000 оборотов в минуту. Как вы догадались, там время задержек еще ниже - около 2 мс, а среднее время поиска равно 3.8 мс. Это позволяет обеспечить доступ к данным за 5.8 мс. Следовательно, диски с большим RPM имеют низкое время поиска нужной информации, за счет чего обеспечивается быстрый обмен между хранилищем информации и системой.

Однако важно заметить, что при доступе к данным большого размера разница в производительности между дисками с большим и низким параметрами RPM будет несущественная, так как задержки на доступ к информации будут отсутствовать вообще.

Как узнать скорость вращения шпинделя?

Определить этот параметр проще простого - он всегда указывается на наклейке на самом устройстве. Достаточно открыть корпус своего системного блока и взглянуть на наклейку. Там может быть много непонятных параметров, но всегда есть одна из следующих строк:

  1. RPM HDD: 5400.
  2. RPM: 7200.
  3. RPM: 10000.

Если жесткий диск скрыт под корпусом ноутбука, который достаточно сложно вскрыть, то можно воспользоваться специальной программой тестирования "железа".

Популярными являются следующие:

  1. Crystalmark.
  2. Aida64.
  3. Speccy.

Они доступны для скачивания из интернета совершенно бесплатно. Запустив одну из указанных программ, можно быстро найти информацию об устройстве хранения данных. Там будут детально отображены параметры жесткого диска. Нас в первую очередь интересует строка "Rotation Rate" и значение напротив нее. В русской версии программы Aida64 необходимо в левой части нажать на "Хранение данных" - "Хранение данных Windows", затем в верхней части нужно выделить жесткий диск, после чего снизу появится информация о нем, в том числе и строка "Скорость вращения".

Недостатки высокой скорости

Конечно, при высоком RPM обеспечивается высокая производительность системы в целом, но есть и недостатки. Чем быстрее вращается шпиндель, тем сильнее нагревается сам диск, да и работает он шумнее. Также подобные винчестеры потребляют больше электроэнергии. Впрочем, современные технологии позволяют осуществить установку RPM и уменьшить потребление энергии и шум за счет снижения скорости вращения шпинделя. Потери производительности при этом компенсируются специальным алгоритмом кэширования данных.

SSD как альтернатива

При разработке современных компьютерных платформ от использования жестких дисков с пластинами и шпинделем отказываются. Сегодня применяют твердотельные накопители, в которых отсутствуют подвижные детали вообще. "Внутренности" этих дисков представляют собой микросхемы на плате. Работают такие устройства как обычные флэшки, вот только производительность и скорость доступа к данным в них очень высокая и намного превышает производительность дисков стандарта HDD. К тому же они не шумят, являются очень легкими и потребляют мало энергии. Высокая цена - единственный недостаток. 7200 RPM на 1 Тб будет стоить дешевле, чем SSD-накопитель с емкостью 128 или 256 Гб.

Если провести аналогию, то разница между SSD и HDD приблизительно такая же, как и разница между обычным DVD-диском и флэшкой. От дисков уже отошли, и сегодня преимущественно используются лишь флэшки.

Заключение

При выборе жесткого диска в первую очередь важно учитывать параметр производительности, который определяется скоростью вращения шпинделя в первую очередь. К сожалению, большинство пользователей смотрят на емкость дисков, хотя это не самое важное. Лучше отдать предпочтение винчестеру с емкостью 500 Гб и скоростью вращения шпинделя 7200 об/мин, чем выбирать диск на 1 Тб и с параметром RPM 5400. А вообще, сегодня нужно отходить от использования подобных систем, поскольку SSD-накопители превосходят устаревшие устройства HDD во всем.

RPM (RedHat Package Manager) - самая популярная утилита управления пакетами для систем на базе RedHat , таких как RHEL , CentOS , Fedora . Инструмент позволяет системным администраторам и пользователям устанавливать, обновлять, удалять, запрашивать, проверять и управлять пакетами системного программного обеспечения в операционных системах Unix/Linux . Менеджер пакетов RPM хранит информацию об установленных в системе приложениях в свой базе данных /var/lib/rpm . Сами.rpm файлы содержат скомпилированные версии программного обеспечения, библиотеки необходимые для их работы, а так-же актуальную информацию об источниках пакетов, версиях и зависимостях. RPM не может управлять программным обеспечением скомпилированным и установленным из исходных кодов.

По сути RPM работает в нескольких режимах. Запросы и проверки:

  • rpm {-q|--query}
  • rpm {-V|--verify}
Установка, обновление, удаление пакетов:
  • rpm {-i|--install} PACKAGE_FILE ...
  • rpm {-U|--upgrade} PACKAGE_FILE ...
  • rpm {-F|--freshen} PACKAGE_FILE ...
  • rpm {-e|--erase} [--allmatches] [--justdb] [--nodeps] [--noscripts][--notriggers] [--test] PACKAGE_NAME ...

1. Проверить gpg подпись rpm пакета

Желательно всегда проверять gpg подпись пакета перед его установкой что-бы удостовериться в его подлинности. # rpm --checksig pidgin-2.7.9-5.el6.2.i686.rpm pidgin-2.7.9-5.el6.2.i686.rpm: rsa sha1 (md5) pgp md5 OK

2. Установка rpm пакета

Для установки rpm пакета используется ключ -i : # rpm -ivh pidgin-2.7.9-5.el6.2.i686.rpm Preparing... ########################################### 1:pidgin ########################################### -i : Установить пакет -v : показать отладочную информацию -h : выводить хэш-меток при установке

3. Проверить зависимости rpm пакета перед установкой

Посмотреть список зависимостей пакета можно так: # rpm -qpR htop-2.0.2-2.fc26.aarch64.rpm ld-linux-aarch64.so.1()(64bit) ld-linux-aarch64.so.1(GLIBC_2.17)(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.17)(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.17)(64bit) libncursesw.so.6()(64bit) libtinfo.so.6()(64bit) rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(PayloadIsXz) <= 5.2-1 rtld(GNU_HASH) -q : выполнить запрос -p | --package : запросить информацию -R : опция режима query, список зависимостей пакета

4. Rpm, установка пакетов без зависимостей

Если вы уверены что все необходимые зависимости установлены, а rpm ругается и не дает установить пакет, можно игнорировать установку зависимостей с помощью флага --nodeps : # rpm -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm Preparing... ########################################### 1:BitTorrent ########################################### Вышеприведенная команда принудительно установит пакет, не смотря на ошибки rpm . Учтите, что если окажется что зависимости все таки отсутствуют в системе, установленная программа работать не будет и нужно будет отдельно установить необходимые зависимости.

5. Rpm, проверить установленный пакет

Что-бы проверить установлен пакет или нет, нужно выполнить запрос нужного пакета: пакет htop установлен # rpm -q htop htop-2.0.2-1.el7.x86_64 пакет fake не установлен # rpm -q fake package fake is not installed

6. Rpm, список файлов установленного пакета

Список файлов установленного пакета можно получить запросом -ql (query list ): # rpm -ql htop /usr/bin/htop /usr/share/doc/htop-2.0.2 /usr/share/doc/htop-2.0.2/AUTHORS /usr/share/doc/htop-2.0.2/COPYING /usr/share/doc/htop-2.0.2/ChangeLog /usr/share/doc/htop-2.0.2/README /usr/share/man/man1/htop.1.gz /usr/share/pixmaps/htop.png

7. Rpm, список последних установленных пакетов

# rpm -qa --last htop-2.0.2-1.el7.x86_64 Sat 03 Jun 2017 06:20:07 PM MSK

8. Rpm, вывести список всех установленных пакетов

Что-бы получить список всех установленных в системе пакетов, нужно выполнить запрос -qa без дополнительных параметров # rpm -qa perl-HTML-Parser-3.71-4.el7.x86_64 dracut-network-033-463.el7.x86_64 filesystem-3.2-21.el7.x86_64 ..................... список пакетов будет довольно большим, для постраничного вывода можно использовать такие утилиты как more или less : # rpm -qa | more

9. Обновление rpm пакета

Для обновления любого rpm пакета используется опция -U (upgrade ). Данная опция не только делает обновление любого пакета до последней версии, но и создает резервную копию старой версии пакета. Если после обновления что-то пойдет не так и программное обеспечение не заработает, можно будет вернуться на ранее установленную и заведомо рабочую версию. # rpm -Uvh nx-3.5.0-2.el6.centos.i686.rpm Preparing... ########################################### 1:nx ###########################################

10. Удаление rpm пакета

Для удаления пакета предназначена опция -e (erase ), опция vv используется для более подробного вывода отладочных сообщений: # rpm -evv nx

11. Удаление rpm пакета без зависимостей

Параметр --nodeps принудительно удаляет пакет rpm из системы. Имейте в виду, что удаление определенного пакета может нарушить работу других рабочих приложений. # rpm -ev --nodeps htop

12. Rpm, запросить файл принадлежащий пакету

Если понадобилось узнать какому пакету принадлежит конкретный файл, используется опция -qf (query file ): # rpm -qf /etc/my.cnf mariadb-libs-5.5.52-1.el7.x86_64

13. Rpm, получить информацию об установленном пакете

Что-бы получить развернутую информацию об установленном пакете, используется опция -qi (query info ): # rpm -qi htop Name: htop Version: 2.0.2 Release: 1.el7 Architecture: x86_64 Install Date: Sun 04 Jun 2017 10:20:51 AM MSK Group: Applications/System Size: 212139 License: GPL+ Signature: RSA/SHA256, Sun 24 Jul 2016 09:22:13 PM MSK, Key ID 6a2faea2352c64e5 Source RPM: htop-2.0.2-1.el7.src.rpm Build Date: Sun 24 Jul 2016 01:01:34 PM MSK Build Host: buildvm-26.phx2.fedoraproject.org Relocations: (not relocatable) Packager: Fedora Project Vendor: Fedora Project URL: http://hisham.hm/htop/ Summary: Interactive process viewer Description: htop is an interactive text-mode process viewer for Linux, similar to top(1).

14. Rpm, получить информацию о пакета который еще не установлен

Что-бы получить информацию о пакете который уже скачан, но еще не установлен, можно запросом -qip (query info package ): rpm -qip ./pachage_name.rpm

15. Rpm, посмотреть файлы документации определенного пакета

Запрос -qdf (query document file ) выведет список всех файлов документации пакета: # rpm -qdf /usr/bin/htop /usr/share/doc/htop-2.0.2/AUTHORS /usr/share/doc/htop-2.0.2/COPYING /usr/share/doc/htop-2.0.2/ChangeLog /usr/share/doc/htop-2.0.2/README /usr/share/man/man1/htop.1.gz

16. Проверка определенного rpm пакета

При проверке пакета сравнивается информацию об установленных файлах пакета с базой данных rpm . # rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm S.5....T. c /etc/httpd/conf.d/sqlbuddy.conf

17. Проверка всех rpm пакетов

# rpm -Va S.5....T. c /etc/rc.d/rc.local .......T. c /etc/dnsmasq.conf .......T. /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf

18. Импорт GPG ключа

Для проверки пакетов RHEL/CentOS/Fedora , нужно импортировать GPG ключ. Для этого выполните следующую команду: # rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

19. Rpm, посмотреть все импортированные ключи

# rpm -qa gpg-pubkey* gpg-pubkey-7bd9bf62-5762b5f8 gpg-pubkey-352c64e5-52ae6884 gpg-pubkey-f4a80eb5-53a7ff4b gpg-pubkey-810f8996-552b1d92

20. Перестроить поврежденную базу данных rpm

Иногда база данных rpm может быть повреждена, при этом rpm не может нормально функционировать. Если подобное случилось, нужно перестроить базу данных rpm : # cd /var/lib/rpm # rm -f __db.* # rpm --rebuilddb Ну и как обычно: # man rpm Удачи

Внимание! Действия пунктов 1 и 4 настоящей инструкции выполняются с административными правами (root)!

1. Установка необходимых пакетов для процесса сборки

# apt-get install rpm-build

2. Установка src.rpm пакета нужного ПО, которое требуется собрать

Находим и качаем src.rpm пакет нужного ПО, которое будем собирать, и устанавливаем его (от пользователя!):

$ rpm -i название_пакета_с_версией.src.rpm

При этом исходники (исходный код) пакета разместятся в ~/RPM/SOURCES , а спек - в ~/RPM/SPECS .
Наличие исходного кода программного обеспечения и спека, т.е. описания процесса сборки, является необходимым и достаточным условием для сборки rpm пакета (или пересборки, например, пакета из более нового бранча для более старого).

3. Сборка пакета

Приступаем к сборке, делается это командой:

$ rpm -ba --target (i586|x86_64) ~/RPM/SPECS/имя_спека_нужного_пакета_для_сборки.spec

При этом необходимо раскрыть скобки в зависимости от архитектуры, под которую происходит сборка пакета.

Собранные пакеты разместятся в ~/RPM/RPMS .

Примечание:

Пересобрать пакет без его установки (распаковки) можно и так:

$ rpmbuild --rebuild --target (i586/x86_64) название_пакета_с_версией.src.rpm

При этом необходимо также раскрыть скобки в зависимости от архитектуры, под которую происходит сборка пакета.

Примечание: Что касается процессоров, не относящихся к семейству x86_64, то само по себе указание "--target i586" опционально (сборка отработает и без него, но при этом компилятор соберет пакет, точно заточенный под Ваш тип процессора и наименование пакета будет отличаться от наименования пакетов бранчей, к примеру, xxx.athlon.rpm или xxx.pentium4.rpm). Отсутствие параметра "--target i586" при сборке совершенно не гарантирует устанавливаемость собранного таким образом пакета на другом компьютере с другим процессором. Если же сборка совершается под 64-битную систему (на 64-битном процессоре с установленной 64-битной системой), то ключ "--target x86_64" теряет свой смысл и ставить его совершенно не обязательно.

Примечание: Если rpm ругается на не найденные макросы примерно так: "ошибка: Macro %groupadd not found" или "ошибка: Macro %license not found", то помочь в дальнейшей сборке пакета должна установка в систему одного из пакетов rpm-build-* , который, фактически, является дополнительной зависимостью для сборки (пересборки) вашего пакета и отвечает за присвоение требуемых значений этим самым не найденным макросам.

4. Установка сборочных зависимостей

Если имеется srpm пакет, для сборки которого необходимо установить зависимости, то это можно сделать, выполнив следующую команду:

# apt-get build-dep название_пакета_с_версией.src.rpm

Если srpm пакета нет и имеется отдельно спек и исходный код, то почти 100% сборка сразу не пойдёт - в самом начале вывода в консоли будут показаны пакеты, которые должны быть установлены в систему, прежде чем сборка сможет пойти далее. Вы их (эти выведенные в консоль зависимости сборки) установите

# apt-get install пакет1 пакет2 пакет3 ...

а после повторите сборку (возврат к шагу 3).

5. Автоматический поиск зависимостей для вновь собираемого пакета

Если вы собираете новый пакет, а не пересобираете уже существующий srpm, то хорошим подспорьем в рамках оформления (поиска и прописывания) нужных зависимостей в спек вам послужит утилита buildreq из пакета rpm-utils :

$ buildreq имя_спек_файла.spec

Рассказать друзьям