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