Проверка загруженного пакета с помощью rpm

Я хотел установить пакет на CentOS 6 через rpm (например, текущий epel-release).

РЕДАКТИРОВАТЬ: Конечно, я всегда предпочел бы установку через yum но почему-то мне не удалось установить этот конкретный пакет, используя этот обычный подход. Таким образом, EPEL / FAQ рекомендует ниже версии 2.

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


Я видел разные подходы к этому в интернете:

Версия 1

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm

Версия 2

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm

Версия 3

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
rpm --import https://fedoraproject.org/static/0608B895.txt
rpm -K epel-release-6-7.noarch.rpm
rpm -i epel-release-6-7.noarch.rpm

я не знаю rpm очень хорошо, поэтому я задавался вопросом, как они могут отличаться? Мое предположение (после прочтения man-страницы) заключается в том, что

  • первый должен использоваться только тогда, когда пакет ранее не установлен,
  • вторая будет дополнительно удалять предыдущие версии пакета после установки,
  • первые два пропускают некоторые этапы проверки до фактической установки, которые выполняются rpm -K,

Итак, мои основные вопросы на данный момент

  • Мои догадки верны или я что-то упустил?
  • Это rpm --import ... неявно сделано и для первых двух подходов, и если нет, то не нужно ли это делать в конце концов?
  • Эти дополнительные проверки выполняются rpm -K ... какое-либо отношение?
  • Каков наилучший (самый безопасный, самый надежный, самый обслуживаемый, ...) способ установки пакетов через rpm в целом?

2 ответа

Решение

Мои догадки верны или я что-то упустил?

Ваши предположения верны.

Это rpm --import... неявно сделано и для первых двух подходов

Нет, это не так. В первых двух подходах проверка подписи GPG пакета не производится. Пакет содержит подпись, но не содержит ключ, поэтому автоматически сделать это невозможно. Четное yum не импортирует ключи GPG автоматически, потому что администратор должен утвердить каждый ключ.

и если нет, то не нужно ли это делать в конце концов?

Это хорошая идея. Но вам нужно получить ключ из другого места (например, путем установки -release пакет).

Эти дополнительные проверки, выполняемые rpm -K ... актуальны?

rpm -K проверяет все подписи в пакете. Это включает контрольные суммы (для непреднамеренного повреждения) и подпись GPG, если таковые имеются, для проверки подлинности. Контрольные суммы отчасти проверяются при установке пакета, но подпись GPG зависит от вас.

Каков наилучший (самый безопасный, самый надежный, самый обслуживаемый, ...) способ установки пакетов через rpm в целом?

использование yum, Ты можешь использовать yum установить скачанный пакет тоже. Однажды ты wget файл и rpm --import ключ, вы можете yum install epel-release-6-7.noarch.rpm скачанный файл с локального диска.

Первый: человек, об / мин.
Тогда: человек ням.
(иногда полезно увидеть это в форме HTML)

На практике я обычно использую инфраструктуру YUM для установки новых пакетов. В современных системах Red Hat/CentOS/Fedora YUM удовлетворяет зависимости пакетов и управляет процессом установки.

Если я в итоге скачиваю rpm-файл напрямую (через curl, wget или локальную сборку), моя командная строка для перехода к rpm:

rpm -ivh packagename.rpm

-i это "установить". -v это "многословный". -h is "hash" и отображает индикатор выполнения во время установки.

[root@xt ~]# rpm -i ncdu-1.5-1.el5.x86_64.rpm 
<no output>

против

[root@xt ~]# rpm -iv ncdu-1.5-1.el5.x86_64.rpm 
Preparing packages for installation...
ncdu-1.5-1.el5

против

[root@xt ~]# rpm -ivh ncdu-1.5-1.el5.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:ncdu                   ########################################### [100%]

rpm -i packagename.rpm делает работу, но годы этого привели к естественной тенденции к использованию -ivh, Прогресс бары хорошие.

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

Я никогда не использовал rpm -K, Я не нуждался в этом через 12 лет... Он предназначен для проверки фактического файла пакета rpm, но если вы загружаете из подписанного репозитория YUM (через ключ GPG), я думаю, что дополнительный шаг проверки не требуется.

Другие вопросы по тегам