rpm
を介してCentOS6にパッケージをインストールしたかった(例:現在の epel-release
)。
EDIT:もちろん、私は常に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
がよくわからないので、どう違うのかしら?私の推測( manpage を読んだ後)は
rpm -K
によって実行される実際のインストールの前にいくつかの検証手順を省略しています。したがって、この時点での私の主な質問は
rpm --import ...
は、最初の2つのアプローチでも暗黙的に実行されますか?そうでない場合は、結局実行する必要はありませんか?rpm -K ...
によって実行されますか?私の推測は正しいですか、それとも何かが足りませんか?
あなたの仮定は正しいです。
rpm --import
...最初の2つのアプローチでも暗黙的に実行されますか
いいえ、ちがいます。最初の2つのアプローチでは、パッケージのGPG署名の検証は行われません。パッケージには署名が含まれていますが、keyが含まれていないため、自動的に実行することは実際には不可能です。 yum
でさえ、各キーを承認するのは管理者の責任であるため、GPGキーを自動的にインポートしません。
、そうでない場合は、結局そうする必要はありませんか?
いい考えだね。ただし、別の場所からキーを取得する必要があります(-release
パッケージをインストールするなど)。
これらの追加のチェックはrpm-Kによって実行されますか...関連性はありますか?
rpm -K
は、パッケージ内のすべての署名を検証します。これには、チェックサム(意図しない破損の場合)と、真正性の検証のためのGPG署名(存在する場合)が含まれます。チェックサムはパッケージのインストール時にチェックされますが、GPG署名はあなた次第です。
一般に、rpmを介してパッケージをインストールするための最良の(最も安全で、最も信頼性が高く、最も保守しやすい...)方法は何ですか?
yum
を使用します。 yum
を使用して、ダウンロードしたパッケージをインストールすることもできます。ファイルをwget
し、キーをrpm --import
すると、ダウンロードしたファイルをローカルディスクからyum install epel-release-6-7.noarch.rpm
することができます。
最初: man rpm 。
次に: man yum 。
(HTML形式で表示すると便利な場合があります)
実際には、私は通常 YUMフレームワークを使用して新しいパッケージをインストールします を使用します。最新のRedHat/CentOS/Fedoraシステムでは、YUMはパッケージの依存関係を満たし、インストールプロセスを処理します。
私doが(curl、wget、またはローカルビルドを介して)rpmファイルを直接ダウンロードすることになった場合、私の頼りになるrpmコマンドラインは次のとおりです。
rpm -ivh packagename.rpm
-i
は「インストール」です。 -v
は「詳細」です。 -h
は「ハッシュ」であり、インストール中に進行状況バーを表示します。
[root@xt ~]# rpm -i ncdu-1.5-1.el5.x86_64.rpm
<no output>
versus
[root@xt ~]# rpm -iv ncdu-1.5-1.el5.x86_64.rpm
Preparing packages for installation...
ncdu-1.5-1.el5
versus
[root@xt ~]# rpm -ivh ncdu-1.5-1.el5.x86_64.rpm
Preparing... ########################################### [100%]
1:ncdu ########################################### [100%]
rpm -i packagename.rpm
がその役割を果たしますが、何年にもわたってこれを行うことで、-ivh
を使用する自然な傾向が生まれました。プログレスバーは素晴らしいです。
-U
スイッチは、既存のパッケージをアップグレードするためのものです。繰り返しになりますが、YUMはパッケージの更新も処理できるため、このユースケースは狭くなります。私は通常、以前にインストールされたRPMパッケージのファイルの競合を示すエラーがある場合にのみ-U
を使用します。
rpm -K
を使ったことがありません。私は12年間それを必要としませんでした...それは 実際のrpmパッケージファイル を検証することを意味します、しかしあなたが署名されたYUMリポジトリから(GPGキーを介して)ダウンロードするなら、私は検証は不要です。