Означает rpm. Основы RPM — Rosalab Wiki

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/ , где поддерживается большая база данных поиска пакетов для множества вариантов и версий на различных платформах. Крайне полезно.

*.RPM - файлы, аналогичны SFX-архивам Windows и программам-инсталляторам.
Как правило, содержат в себе собранные исходные тексты программ, которые легко поддаются редактированию.
Исходный код самого пакета по команде пользователя собирается с расширением.SRPM.

Операции с пакетами из консоли производится командой RPM.
Напоминаю:
справку по ней можно получить, набрав "rpm --help" или "rpm -?"; а подробный мануал - "man rpm"
(чтобы выйти из мануала и вернуться в терминал, нужно нажать "q" ).

Здесь предложено ознакомиться сначала с описанием самих программ по установке пакетов
(главная из них - rpm), а затем - со списком команд и параметров для этой программы.

Установка программного обеспечения в Linux.

В операционной системе Linux существуют три способа установки программного обеспечения:

  • Традиционный.
  • Из пакетов RPM.
  • Из пакетов, содержащих исходный код.

Рассмотрим по порядку все три способа.

Этот способ заключается в том, что программа распространяется не в собранном виде, а в виде исходных текстов. Данный способ называется традиционным, потому что он был первым способом установки программ до появления менеджера RPM или аналогичных ему (apt-get).

1. Традиционный способ установки - установка из исходных текстов.

Как правило, исходный текст распространяется в архиве. Обычно файл, содержащий исходный текст, имеет двойное расширение: например, tar.gz или tar.bz2. Это означает, что данный файл сжат двумя архиваторами: сначала tar, а потом gzip.

Распаковывать архив нужно по принципу стека: сначала внешним архиватором, а потом внутренним. Предположим, что prg-2.00.tar.gz - это имя файла нашего архива. Для его распаковки нужно ввести команды:

gunzip prg-2.00.tar.gz
tar xvf prg-2.00.tar

Первая команда распакует файл prg-2.00.tar, который мы укажем в качестве одного их аргументов во второй команде. Параметр х программы tar означает, что нам нужно выполнить извлечение файлов из архива (параметр с - создание). Параметр v можете указывать по собственному усмотрению, он обеспечивает большую информативность при работе программы.
Последний параметр f является обязательным при работе с файлами.
Первоначально программа tar была предназначена для работы с пленками стримеров, поэтому нужно использовать параметр f, чтобы сказать программе, что нам нужно работать с файлами.
Если внешнее расширение не gz, a bz или bz2, то вместо первой команды вам нужно ввести команды (соответственно):

bunzip prg-2.00.tar.bz
bunzip2 prg-2.00.tar.bz2


Затем, как и в первом случае, нужно выполнить команду tar (с такими же параметрами).

Иногда файлы исходных текстов имеют всего одно расширение tgz. В этом случае вам нужно ввести всего одну команду:

tar xzf prg-2.00.tgz


Параметр z означает извлечение файлов с использованием распаковщика gzunzip. Обычно такое расширение имеют файлы архивов, созданные с помощью программы tar и пропущенные через фильтр архиватора gzip.

Следующий этап - это непосредственная установка программы. После успешного завершения первого этапа(распаковки) перейдите в каталог, содержащий исходные тексты. Обычно это каталог <имя_программы-версия>:

cd prg-2.00

. /configure
make
make install

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

Обычно такое случается, когда в вашей системе не установлена одна из необходимых новой программе библиотек. Для продолжения установки необходимо установить требуемую библиотеку и попытаться заново ввести команду./configure. После успешного завершения работы программы./configure будет создан файл Makefile, в котором будут указаны необходимые параметры (пути к библиотекам, путь для установки программы) для программы make.

Вторая команда (make) «собирает» программу. На этом этапе программа компилируется, то есть создаются бинарные исполнимые файлы из исходных текстов.

Третья команда - make install - устанавливает программу и файлы справочной системы в соответствующие каталоги. Обычно программы устанавливаются в каталог /usr/bin, но это зависит от содержимого конфигурационного файла Makefile.

После успешной установки программы вы можете ее запустить, предварительно прочитав документацию по этой программе.

2.Установка программа из пакета RPM.

Установка программного обеспечения в дистрибутивах Red Hat и Mandrake производится с помощью программы rpm. RPM (Red Hat Package Manager) - это менеджер пакетов Red Hat. Несмотря на то, что в названии присутствует «Red Hat», он полностью предназначен работать как открытая пакетная система, доступная для использования кем угодно. Она позволяет пользователям брать исходный код для нового программного обеспечения и упаковывать его в форме исходного и двоичного кода, так что двоичные файлы могут быть легко установлены и отслежены, а исходный код легко
построен. Эта система также сопровождает базу данных всех пакетов и их файлов, что может быть использовано для проверки пакетов и запроса информации о файлах и/или пакетах.

В отличие от привычных мастеров InstallShield, которые используются для установки программ для Windows, пакеты RPM (файлы с расширением.rpm) не являются выполняемыми файлами, то есть программами. В пакетах содержатся файлы (как в архиве), которые нужно установить, а также различная информация об этом пакете: какой пакет необходим для работы этого пакета, с каким пакетом конфликтует, информация о разработчике, а также информация, указывающая, какие действия нужно выполнять при установке этого пакета, например, какие каталоги нужно создать. Менеджер пакетов RPM используется во многих дистрибутивах Linux (Red Hat, Mandrake, ASP, Black Cat) и является довольно легкой и гибкой в использовании системой, что обусловливает его популярность.

Например, для пакета software-1.0-I.i386.rpm имеют место: software - название;

1.0 - версия программы;
1 - выпуск пакета;
i386 - платформа Intel 386.

Обычно в имени файла пакета указываются его название, версия, выпуск, платформа. Последние четыре символа - «.rpm» - признак того, что данный файл является пакетом. В Linux отсутствует такое понятие как расширение или тип файла.

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

С названием и версией программы, я думаю, все ясно. А вот с архитектурой немного сложнее. Самыми «универсальными» пакетами являются пакеты, рассчитанные на архитектуру Intel 386. Данная программа должна
работать на любом процессоре Intel, начиная с 80386DX (или совместимого с ним). А вот если у вас процессор 80486, пакет, рассчитанный для работы с архитектурой 80586 (Pentium), скорее всего, не установится в вашей системе.
Обычно для процессоров архитектуры CISC (с набором команд х86) используются следующие обозначения:

i386 - Intel 80368DX;
i586 - Intel Pentium (MMX), AMD K5 (K6);
i686 - Intel PPro, Celeron, PII, РШ, PIV.

В простейшем случае команда установки пакета выглядит так:

rpm -i <пакет>

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

Если нужен дополнительный пакет, просто установите его. А вот если программа конфликтует с уже установленным пакетом, то вам нужно будет выбрать, какой пакет вам больше нужен: уже установленный или новый.

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

rpm -ihv software-1.0-1.i386.rpm

Установку можно производить не только с локального диска, но и по протоколу FTP:

Для удаления пакета используется команда:

rpm -e <пакет>

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

Для пропуска проверки зависимостей нужно использовать параметр --nodeps.
Это бывает иногда полезно. Например, у вас установлена программа postfix, а вам нужно установить программу sendmail. Обе программы используются для отправки почты.

Однако для работы многих почтовых программ необходим агент МТА (Mail Transfer Agent) - программа для отправки почты (postfix или sendmail).
Поэтому с помощью параметра -е удалить программу postfix вы не сможете.
Установить программу sendmail без удаления программы postfix вы также не сможете, потому что пакеты конфликтуют друг с другом. В этом случае вам поможет команда:

rpm -e -nodeps postfix

После такого удаления нормальная работа других программ, которым необходим МТА, невозможна, поэтому вам сразу же нужно установить программу sendmail (или другой МТА). Устанавливать программу в таком случае нужно, как обычно, с помощью параметра -i.

Для обновления программ используется параметр -U. Я рекомендую использовать его и при установке программ, потому что, если устанавливаемый пакет уже был установлен, то будет произведено его обновление, а если нет, то будет просто установлен новый пакет. Для того, чтобы видеть текстовый индикатор при установке пакетов, используйте опцию h. Команда для обновления пакета:

rpm -Uhv <пакет>

Например:

rpm -Uhv software-1.1-4.i386.rpm

Текстовый индикатор будет отображен в виде символов #. Просмотреть все установленные пакеты можно с помощью команды:

rpm -qa I less

Если вам требуется узнать, установлен ли определенный пакет, выполните команду:

rpm -qa | grep название_пакета

Просмотреть общую информацию о пакете можно с помощью команды:

rpm -qi пакет

а информацию о файлах, которые входят в состав пакета:

rpm -ql пакет

Программы gnorpm, kpackage, apt.

Менеджер пакетов RPM является мощным средством для произведения операций над пакетами - создания, установкя, обновления, удаления. Однако интерфейс командной строки может понравиться далеко не всем, а особенно начинающему администратору. Существуют и графические (под X Window) реализации менеджера пакетов - например, kpackage из KDE, gnorpm и другие.
Я рекомендую использовать программу gnorpm, которая обладает интуитивным графическим интерфейсом. RPM больше подходит для создания новых пакетов, а также для обновления большого числа пакетов. Для установки одного-двух пакетов лучше и удобнее использовать gnorpm.

Функции программы gnorpm:

Установка пакетов.
Удаление пакетов.
Получения сведений о пакете.
Проверка пакета.
Поиск пакета в базе RPM.

Для установки какого-либо пакета нажмите на кнопку «Установить». Если в приводе CD-ROM находится инсталляционный CD, то в появившемся окне вы увидите список еще не установленных в системе пакетов.

Если пакета нет в списке или вы хотите установить пакет, который не входит в состав дистрибутива, нажмите на кнопку «Добавить» и добавьте в список пакеты, которые вы хотите установить. Нажмите на кнопку «Запрос» для получения сведений о пакете.

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

Найти пакет вы можете с помощью операции Поиск. Для этого нажмите на кнопку «Поиск» на панели инструментов gnorpm или выполните команду меню Операции -> Поиск. В открывшемся окне вы можете установить критерии поиска и нажать на кнопку «Поиск».

В состав KDE входит программа с графическим интерфейсом пользователя, управляющая пакетами - kpackage. По своим функциям она аналогична программе gnorpm. Какую из этих программ использовать - дело вкуса и привычки.

Также стоит упомянуть о программе APT. Программа APT - это система управления пакетами программного обеспечения. Первоначально система APT была разработана для Debian Linux. Сейчас входит в состав некоторых Red Hat совместимых
дистрибутивов (например, apt-get и входит в состав AltLinux, но ее вы не найдете в Red Hat Linux). Для управления пакетами используется программа apt-get. Формат вызова программы apt-get такой:

apt-get [опции] [команды] [пакет. . .]


В дистрибутив Linux Mandrake входит собственное средство управления пакетами - rpmdrake. К десятой версии дистрибутива оно немного видоизменилось. Теперь оно состоит из трех частей:

/usr/sbin/edit-urpm-media - менеджер источников пакетов (что такое источники, я уже сказал, поэтому останавливаться на этом не будем);
rpmdrake - менеджер установки пакетов;
rpmdrake-remove - менеджер удаления пакетов.
Запустить любую из частей можно из меню К: Система| Настройка | Пакеты.

Установка из пакетов, содержащих исходный код.

Иногда в пакетах RPM находятся не откомпилированные версии программ, а их исходный код. Признаком этого является слово src вместо названия архитектуры. Для установки такого пакета введите:

rpm --rebuild software-2.00-1.src.rpm

Разумеется, вместо software-2.00-l.src.rpm нужно указать реальное имя файла. Перед установкой программы ее исходный текст будет откомпилирован, и потом программа будет установлена.

ОБЩИЕ ОПЦИИ.

Эти опции могут быть использованы во всех режимах работы.

"-vv" Выводить много отладочной информации.

"--quiet" Выводить как можно меньше сообщений - как правило, выводятся только сообщения об ошибках.

"--help" Вывести более детальную, чем обычно, справку об использовании rpm.

"--version" Вывести одну строку, содержащую номер версии используемого rpm.

"--rcfile <список-файлов>" Каждый из файлов из разделенного двоеточиями <списка-файлов> последовательно читается rpm на предмет конфигурационной информации.
По умолчанию <список-файлов> выглядит как /usr/lib/rpm/rpmrc:/etc/rpmrc:~/.rpmrc.
В этом списке обязана существовать только первая строка; все тильды будут заменены значением $HOME.

"--root <каталог>" Использовать для всех операций файловую систему с корнем в <каталог>.
Обратите внимание, что это значит, что база данных также будет читаться и модифицироваться под <каталог>,и все pre и post скрипты будут исполняться после chroot() в <каталог>.

"--dbpath <путь>" Использовать базу данных RPM в <путь>.

"--justdb" Обновить только базу данных, не файловую систему.

"--ftpproxy , --httpproxy " Использовать как FTP или HTTP прокси.

"--ftpport <порт>, --httpport <порт>" Использовать <порт> как FTP или HTTP порт прокси-сервера.

"--pipe " Перенаправляет вывод rpm на вход команды .

Обслуживание базы данных:

rpm -i [--initdb]

rpm -i [--rebuilddb]

ОПЦИИ ПЕРЕСТРОЕНИЯ БАЗЫ ДАННЫХ.

Общая форма команды перестроения базы данных RPM выглядит так:
rpm --rebuilddb
Для построения новой базы данных:
rpm --initdb
Этот режим поддерживает только две опции, --dbpath и --root.

Запуск
rpm --showrc
выводит значения, которые rpm будет использовать для всех опций, которыемогут быть установлены в файлах rpmrc.

Сборка:
rpm [-b|t] +
rpm [--rebuild] +
rpm [--tarbuild] +

ОПЦИИ СБОРКИ (ПОСТРОЕНИЯ) ПАКЕТОВ.

Общая форма команды построения пакета rpm выглядит так:
rpm -O [опции-сборки] +
Аргумент -bfR применяется в том случае, если для сборки пакета используется spec-файл. Если же rpmfR должен извлечь этот файл из архива gzip (или compress), используется аргумент -tfR. После первого аргумента указывается следующий (OfR), указывающий какие этапы сборки и упаковки должны быть выполнены. Это один из:

"-bp" Исполнить стадию "%prep" spec-файла. Обычно это включает в себя распаковку исходников и прикладывание к ним патчей.

"-bl" Произвести "list check". В секции "%files" spec-файла производится расширение макросов и проверка перечисленных файлов на существование.

"-bc" Исполнить стадию "%build" spec-файла (предварительно исполнив стадию %prep). Обычно это сводится к исполнению некого эквивалента "make".

"-bi" Исполнить стадию "%install" spec-файла (предварительно исполнив стадии %prep и %build). Обычно это сводится к исполнению некого эквивалента
"make install".

"-bb" Собрать бинарный пакет (предварительно исполнив стадии %prep, %build и %install).

"-bs" Собрать только исходный пакет (предварительно исполнив стадии %prep, %build и %install).

"-ba" Собрать бинарный (RPM) и исходный (SRPM) пакеты (предварительно исполнив стадии %prep, %build и %install).

Также могут быть использованы следующие опции:

"--short-circuit" Исполнить непосредственно указанную стадию, пропустив предшествующие. Может быть использована только с -bc и -bi.

"--timecheck" Установить возраст для "timecheck" (0 чтобы запретить). Это значение также может быть установлено путем определения макроса "_timecheck".
Значение timecheck определяет максимальный возраст (в секундах) пакуемых в пакет файлов. Для всех файлов, которые старше этоговозраста, будет выводиться предупреждение.

"--clean" Удалить дерево, использованное для сборки, после того, как построены пакеты.

"--rmsource" Удалить исходники и spec-файл после сборки (может быть использовано отдельно, например "rpm --rmsource foo.spec").

"--test" Не исполнять никаких стадий сборки. Полезно для тестирования spec-файлов.

"--sign" Встроить в пакет PGP-подпись. Эта подпись может быть использована для проверки целостности и источника происхождения пакета. См. секцию
ПОДПИСИ PGP на предмет опций PGP.

"--builroot <каталог>" Использовать каталог <каталог> как корневой для сборки пакетов.

"--target <платформа>" При сборке пакета интерпретировать <платформа> как arch-vendor-os
и соответственно установить макросы _target, _target_arch и _target_os.

"--buildarch " Собрать пакет для архитектуры не обращая внимания на архитектуру
системы, на которой производится сборка. Эта опция устарела, в RPM 3.0 вместо нее следует использовать опцию --target.

"--buildos " Собрать пакет для операционной системы не обращая внимания на
архитектуру системы, на которой производится сборка. Эта опция устарела, в RPM 3.0 вместо нее следует использовать опцию --target.

ОПЦИИ ПЕРЕСБОРКИ И ПЕРЕКОМПИЛЛЯЦИИ.

Существуют еще два способа запуска rpm:

rpm --recompile <файл_исходного_пакета>+"

rpm --rebuild <файл_исходного_пакета>+"

Будучи вызванным таким способом, rpm устанавливает указанный исходный пакет и исполняет %prep, %build и %install. Кроме того, --rebuild собирает новый бинарный пакет. После того, как сборка закончена, удаляется дерево, использованное для сборки (как с опцией --clean), сами исходники и spec-файл.

ПОДПИСЬ СУЩЕСТВУЮЩЕГО RPM.

rpm --resign <файл_бинарного_пакета>+ Эта опция генерирует и вставляет новые подписи в указанные пакеты.
Все существующие подписи из пакетов удаляются.

rpm --addsign <файл_бинарного_пакета>+ Эта опция генерирует и добавляет новые подписи в указанные пакеты.
Все существующие подписи пакетов при этом сохраняются.

ПОДПИСИ PGP.

Для того, чтобы использовать возможность подписи, rpm должен быть настроен для запуска PGP и должен быть способен найти public key ring с ключом RPM в нем. По умолчанию rpm для поиска keyrings использует умолчания PGP (соблюдая PGPPATH).
Если ваlи key rings расположены не там, где их ожидает найти PGP, вы должны настроить макрос "_pgp_path" на каталог, содержащий ваlи key rings.

Если вы хотите иметь возможность подписи создаваемых вами пакетов, вам также необходимо создать свою собственную пару из публичного и секретного ключей (см. документацию PGP). Кроме выlеупомянутого макроса, вам также необходимо настроить макросы

"_signature" Тип подписи. В настоящее время поддерживается только pgp.

"_pgp_name" Имя "пользователя" , чьи ключи вы хотите использовать для подписи ваших пакетов.

При сборке пакетов вы добавляете к командной строке опцию --sign. У вас спросят пароль и ваш пакет будет собран и подписан.

Например, для того чтобы использовать PGP для подписи пакетов от имени пользователя "John Doe " из key rings, находящихся в /etc/rpm/.pgp, вы должны включить

"%_signature"
pgp
"%_pgp_name"
/etc/rpm/.pgp
"%_pgp_name"
John Doe "

В файл конфигурации макросов. Используйте /etc/rpm/macros для общесистемной и ~/.rpmmacros для пользовательской конфигурации.

Обслуживание установленных пакетов:

rpm [--install] [опции-установки] [файл-пакета]+
rpm [--eshen|-F] [опции-установки] [файл-пакета]+
rpm [--uninstall|-e] [опции-удаления] [пакет]+
rpm [--verify|-V] [опции-верификации] [пакет]+

ОПЦИИ УСТАНОВКИ И ОБНОВЛЕНИЯ.

Общая форма команды установки rpm выглядит так:
rpm -i [опции-установки] <файл_пакета>+
Такая команда устанавливает новые пакеты.

Общая форма команды обновления rpm выглядит так:
rpm -U [опции-установки] <файл_пакета>+
Такая команда производит обновление установленных пакетов. Работа этой команды полностью аналогична работе команды установки за исключением того, что все остальные версии пакетов удаляются из системы.

rpm [-F|--eshen] [опции-установки] <файл_пакета>+
Такая команда производит обновление пакетов, но только если в системе существуют более ранние версии этих пакетов.
Допускается задание <файл_пакета> в виде ftp или http style URL. В этом случае перед установкой файл будет получен с cервера, указанного в URL.

"--force" То же, что и комбинация --replacepkgs, --replacefiles и --oldpackage.

"-h, --hash" Выводить 50 знаков "#" по мере распаковки архива с пакетом. Используется с -v для красивости.

"--oldpackage" Позволяет заменить новый пакет на более старый при обновлении (откатиться назад).

"--percent" Выводить процент готовности по мере распаковки архива с пакетом. Задумано для облегчения использования rpm из других утилит.

"--replacefiles" Устанавливать пакеты даже если они перепиlут файлы из других, уже установленных пакетов.

"--replacepkgs" Устанавливать пакеты даже если некоторые из них уже установлены в системе.

"--allfiles" Устанавливать или обновлять все файлы, определенные как "missingok", даже если они уже существуют.

"--nodeps" Не проверять зависимости перед установкой или обновлением пакета.

"--noscripts" Не исполнять пре- и постустановочных скриптов.

"--notriggers" Не исполнять триггер-скриптов, взведенных на установку данного пакета.

"--ignoresize" Не проверять файловую систему на наличие достаточного свободного места перед установкой этого пакета.

"--excludepath <путь>" Не устанавливать файлы, чьи имена начинаются с <путь>.

"--excludedocs" Не устанавливать никаких файлов, отмеченных как файлы документации (включает мануалы и документы texinfo).

"--includedocs" Устанавливать файлы документации. Это поведение по умолчанию.

"--test" Не устанавливать пакет, просто проверить возможность установки и сообщить о возможных проблемах.

"--ignorearch" Произвести установку или обновление даже если архитектуры бинарного RPM и машины не совпадают.

"--ignoreos" Произвести установку или обновление даже если операционные системы бинарного RPM и машины не совпадают.

"--prefix <путь>" Установить префикс установки в <путь> для переместимых пакетов.

"--relocate <старый_путь>=<новый_путь>" Для переместимых пакетов: преобразовывает файлы, которые должны были бы быть установлены в <старый_путь> в <новый_путь>.

"--badreloc" Для использования вместе с --relocate. Производит перемещение даже если пакет не переместимый.

"--noorder" Не переупорядочивать список устанавливаемых пакетов. Обычно список переупорядочивается для удовлетворения зависимостей.

Запрос:
rpm [--query] [опции-запроса]
rpm [--querytags]

ОПЦИИ ЗАПРОСА.

Общая форма команды запроса(инспекции) rpm выглядит так:
rpm -q [опции-запроса]
Можно задать формат, в котором будут выводиться информация о пакете. Для этого используется опция --queryformat с последующей строкой формата.

Форматы запроса представляют собой модифицированную версию стандартного форматирования printf(3). Формат состоит из статических строк (которые могут включать стандартные escape-последовательности C для переводов строки, табуляций и других специальных символов) и форматов по типу используемых в printf(3). Так как rpm уже знает типы данных, подлежащих выводу, спецификаторы типов должны быть опущены и заменены именами тэгов(ключей) хедеров, подлежащих выводу, заключенными в {}. Часть имени тэга RPMTAG_ может быть опущена.

Альтернативные форматы вывода могут быть заданы путем добавления к имени тэга:typetag. В настоящее время поддерживаютсяследующие типы: octal, date, shescape, perms, fflags и depflags.

Например, для вывода только названий запраlиваемых пакетов, можно использовать в качестве строки формата %{NAME}. Для вывода названий пакетов и информации о дистрибутиве в две колонки можно использовать %-30{NAME}%{DISTRIBUTION}.

Будучи запущенным с аргументом --querytags, rpm выведет список всех тэгов, о которых он знает.

Есть два набора опций для запроса - выбор пакетов и выбор информации.

Опции выбора пакетов:

"<название_пакета>" Запрос установленного пакета, называющегося <название_пакета>.

"-a, --all" Запрос всех установленных пакетов.

"--whatrequires " Запрос всех пакетов, требующих для правильного функционирования.

"--whatprovides " Запрос всех пакетов, предоставляющих сервис.

"-f <файл>, --file <файл>" Запрос пакета, которому принадлежит файл <файл>.

"-g <группа>, --group <группа>" Запрос пакетов из группы <группа>.

"-p <файл_пакета>" Запрос (неинсталлированого) пакета <файл_пакета>.
Файл <файл_пакета> может быть задан как ftp или http style URL; в этом случае хедер пакета будет получен с указанного сервера.

"--specfile " Разбор и запрос так, как если бы это был пакет. Хотя не вся информация (например, списки файлов) доступна, этот тип запроса позволяет использовать rpm для извлечения информации из spec-файлов без необходимости написания парсера spec-файлов.

"--querybynumber " Запросить непосредственно запись базы данных номер . Полезно для отладочных целей.

"--triggeredby <имя_пакета>" Запрос всех пакетов, содержащих триггер-скрипты, активизируемые пакетом <имя_пакета>.

Опции выбора информации:

"-i"
Выводит информацию о пакете, включая название, версию и описание. Использует --queryformat если таковой задан.

"-R, --requires" Выводит список пакетов, от которых зависит данный пакет.

"--provides" Выводит список сервисов и библиотек, предоставляемых данным пакетом.

"--changelog" Выводит протокол изменений данного пакета.

"-l, --list" Выводит список файлов, входящих в данный пакет.

"-s, --state" Выводит состояние файлов в пакете (подразумевает -l).

Каждый файл может находиться в одном из следующих состояний: нормальный, не установлен или заменен.

"-d, --docfiles" Вывести список только файлов документации (подразумевает -l).

"-c, --configfiles" Вывести список только конфигурационных файлов (подразумевает -l).

"--scripts" Вывести специфические для данного пакета скрипты, используемые как часть процессов инсталляции/деинсталляции, если таковые есть.

"--triggers, --triggerscripts" Показать все триггер-скрипты, если таковые имеются, содержащиеся в пакете.

"--dump" Вывести информацию о файлах следующим образом: path size mtime md5sum mode owner group isconfig isdoc rdev symlink.
Эта опция должна использоваться в сочетании с по меньшей мере одной из -l, -c, -d.

"--last" Упорядочивает список пакетов по времени установки таким образом, что наиболее свежие пакеты находятся в верху списка.

"--filesbypkg" Показывает все файлы в каждом пакете.

"--triggerscripts" Показывает все триггер-скрипты для выбранных пакетов.

ОПЦИИ ВЕРИФИКАЦИИ.

Общая форма команды верификации rpm выглядит так:
rpm -V|-y|--verify [опции-верификации]
В процессе верификации пакета информация об инсталлированых файлах пакета сравнивается с информацией из оригинального пакета и из базы данных RPM. В числе прочих, верификация проверяет размер, контрольную сумму MD5, права доступа, тип, хозяина и группу каждого файла. Все несоответствия докладываются. Опции выбора пакетов такие же, как и для запроса(инспекции) пакетов.

Файлы, которые не устанавливались из пакета (например, файлы документации, которые были исключены из процесса инсталляции при помощи опции "--excludedocs" ) молча игнорируются.

Опции, которые могут быть использованы в процессе верификации:

"--nofiles" Игнорировать отсутствующие файлы.

"--nomd5" Игнорировать ошибки контрольной суммы MD5.
"--nopgp" Игнорировать ошибки подписи PGP.

Форматом вывода является строка из восьми символов, возможное "c", указывающее на конфигурационный файл, и имя файла. Каждый из восьми символов показывает результат сравнения одного из атрибутов файла со значением, записанным в базе данных RPM. Точка обозначает, что тест проlел. Следующие символы говорят об ошибках некоторых тестов:

"5" Контрольная сумма MD5.

"S" Размер файла.

"L" Симлинк.

"T" Время модификации.

"D" Устройство.

"U" Хозяин.

"G" Группа.

"M" Права доступа (включает права доступа и тип файла).

ПРОВЕРКА ПОДПИСИ

Общая форма команды проверки подписи RPM выглядит так:
rpm --checksig <файл_с_пакетом>+
Эта команда проверяет PGP-подпись, встроенную в пакет, для подтверждения целостности и источника происхождения пакета.
Информация о конфигурации PGP читается из конфигурационных файлов. Более детально см. секцию ПОДПИСИ PGP.

ОПЦИИ УДАЛЕНИЯ (ДЕИНСТАЛЛЯЦИИ)

Общая форма команды удаления (деинсталляции) rpm выглядит так:
rpm -e <название_пакета>+

"--allmatches" Удалить все версии пакета, отвечающие <название_пакета> Обычно, если <название_пакета> отвечает нескольким пакетам, выдается
сообщение об оlибке и удаление не производится.

"--noscripts" Не исполнять пре- и постустановочные скрипты.

"--notriggers" Не исполнять триггер-скриптов, взведенных на удаление данного пакета.

"--nodeps" Не проверять зависимостей перед удалением пакетов.

"--test" Не производить удаления, только сделать вид что:) Полезна в сочетании с опцией -vv.

Разное:
rpm [--showrc]
rpm [--setperms] [пакет]+
rpm [--setgids] [пакет]+

ОПЦИИ FTP/HTTP.

rpm содержит простые клиенты FTP и HTTP для упрощения установки и изучения пакетов, доступных через Интернет. Файлы пакетов для установки,
обновления и запроса могут быть указаны как ftp или http style URL:
ftp://:@hostname:/path/to/package.rpm
Если часть Опущена, пароль будет запроlен (по одному разу для каждой пары user/hostname). Если ни , ни Не указаны, будет использован anonymous ftp. Во всех случаях используется пассивная (PASV) пересылка по FTP.

Rpm позволяет использовать с ftp URL следующие опции:

"--ftpproxy " Система будет использована как прокси-сервер для всех пересылок, что позволяет производить FTP-соединения через firewall, использующий прокси для выхода во внеlний мир. Эта опция может быть задана также настройкой макроса _ftpproxy.

"--ftpport " Задает номер TCP-порта, используемого для FTP-соединений вместо порта по умолчанию.
Эта опция может быть также задана настройкой макроса _ftpport.

Rpm позволяет использовать с http URL следующие опции:

"--httpproxy " Система будет использована как прокси-сервер для всех пересылок, что позволяет производить HTTP-соединения через firewall, использующий прокси для выхода во внеlний мир. Эта опция может быть задана также настройкой макроса _httpproxy.

"--httpport " Задает номер TCP-порта, используемого для HTTP-соединений вместо порта по умолчанию.
Эта опция может быть также задана настройкой макроса _httpport.

Подготовил Dvoe4nik85

Когда покупатель пытается собрать себе компьютер из комплектующих самостоятельно или просто выбирать жесткий диск для ПК, то часто сталкивается с понятием "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 во всем.

Рано или поздно нам приходится устанавливать программное обеспечение не из официальных репозиториев. Там есть далеко не все пакеты, и не всегда есть самые новые версии, только что вышедших программ. Очень часто разработчики размещают на своем официальном сайте пакеты для самых популярных дистрибутивов. Обычно это deb и rpm. Последний встречается немного реже, но если вы используете дистрибутив на базе Red Hat, вам нужен именно этот формат пакетов. Также в сети часто можно найти библиотеки и другие компоненты, которых нет в репозиториях в виде пакетов.

Раньше мы уже рассматривали установку deb пакетов в Ubuntu. А в этой статье будет подробно разобрана установка rpm пакетов в linux.

RPM или RPM Package Manager - это пакетный менеджер, используемый в дистрибутивах Linux, основанных на Red Hat. Такое же название имеет формат файлов этого пакетного менеджера.

Этот формат не очень сильно отличается от того же самого Deb. Вы можете посмотреть их детальное сравнение в статье что . Здесь же, только отмечу, что файл rpm - это обычный cpio архив, в котором содержатся сами файлы программы, а также метаданные, описывающие куда их нужно устанавливать. База всех установленных пакетов находится в каталоге /var/lib/rpm. Из особенностей можно отметить, что rpm не поддерживает рекомендованные пакеты, а также зависимости формата или-или.

Для управления пакетами, так же как и в Debian-системах, здесь существует консольная, низкоуровневая утилита с одноименным названием - rpm. Ее мы и будем рассматривать дальше в статье. В разных системах используются разные пакетные менеджеры, например в Red Hat используется Yum, в Fedora - DNF, а в OpenSUSE - zypper, но во всех этих системах будет работать утилита rpm.

Установка RPM пакетов в Linux

Давайте сначала рассмотрим синтаксис самой утилиты rpm:

$ rpm -режим опции пакет

Утилита может работать в одном из режимов:

  • -q - запрос, получение информации;
  • -i - установка;
  • -V - проверка пакетов;
  • -U - обновление;
  • -e - удаление.

Рассмотрим только самые интересные опции программы, которые понадобятся нам в этой статье:

  • -v - показать подробную информацию;
  • -h - выводить статус-бар;
  • --force - выполнять действие принудительно;
  • --nodeps - не проверять зависимости;
  • --replacefiles - заменять все старые файлы на новые без предупреждений;
  • -i - получить информацию о пакете;
  • -l - список файлов пакета;

Теперь, когда вы уже имеете представление как работать с этой утилитой, может быть рассмотрена установка rpm пакета в Linux. Самая простая команда установки будет выглядеть вот так:

sudo rpm -i имя_пакета.rpm

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

Для того чтобы посмотреть более подробную информацию в процессе установки используйте опцию -v:

sudo rpm -iv имя_пакета.rpm

Также вы можете включить отображение статус бара в процессе установки:

sudo rpm -ivh имя_пакета.rpm

Чтобы проверить установлен ли пакет, нам уже нужно использовать режим запроса:

sudo rpm -q имя_пакета

Также сразу можно удалить пакет, если он не нужен:

sudo rpm -e имя_пакета

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

Для автоматической загрузки зависимостей во время выполнения установки rpm linux нужно использовать пакетный менеджер дистрибутива. Рассмотрим несколько команд для самых популярных RPM дистрибутивов. В RedHat и других дистрибутивах, использующих Yum используйте такую команду:

sudo yum --nogpgcheck localinstall имя_пакета.rpm

Первая опция отключает проверку GPG ключа, а вторая говорит, что мы будем выполнять установку локального пакета. В Fedora, с помощью dnf все делается еще проще:

sudo dnf install имя_пакета.rpm

Пакетный менеджер Zypper и OpenSUSE справляются не хуже:

sudo zypper install имя_пакета.rpm

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

Установка RPM файла в GUI

Если вы используете OpenSUSE, то это делается очень просто. Универсальный конфигуратор системы YaST, кроме всего прочего позволяет установить rpm пакеты. Вы можете сделать это с помощью файлового менеджера, выбрав пункт контекстного меню для файла открыть с помощью Yast или выполнив команду:

yast2 -i имя_пакета.rpm

В Fedora для тех же целей вы можете использовать менеджер приложений дистрибутива. Раньше было еще несколько универсальных утилит для решения этой задачи, но сейчас они уже все устарели.

Выводы

Теперь вы знаете как выполняется установка rpm файла в Linux. На самом деле это очень просто и даже существует не только один способ, а целых несколько. Хотя графических утилит здесь немного меньше чем в Ubuntu. Но консольных утилит полностью хватает. Если у вас остались вопросы, спрашивайте в комментариях!

Внимание! Действия пунктов 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