yum安裝時報RPM-GPG-KEY錯

今天在使用yum install的時候,碰見這樣的錯誤:Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

U9IIRL[YTG`P$T%}BN}P$GI.png

百般查找才知道是因爲在 /etc/yum.repos.d 目錄下,有關於yum repository的配置文件中,列有如下的GPG key:

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

這個配置告訴YUM,這個repository的GPG key存在於磁盤上。而當YUM在路徑 /etc/pki/rpm-gpg 下找不到這個GPG key的時候,就會報如上的錯誤了。

解決方案:

cd /etc/pki/rpm-gpg
wget https://archive.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7

然後再次運行 yum 命令就可以成功了。當然,也有些包是需要先安裝epel之後才能裝上的。安裝epel的方法是: 

yum install -y epel-release

因爲好奇,搜索了RPM-GPG-KEY到底是什麼,這篇文章寫的比較好

原文地址:http://linux.chinaunix.net/techdoc/system/2007/09/26/968723.shtml

下面,附錄RPM-GPG-KEY詳解:

一、GPG

GPG在Linux上的應用主要是實現官方發佈的包的簽名機制。
GPG分爲公鑰及私鑰。
公鑰:顧名思意,即可共享的密鑰,主要用於驗證私鑰加密的數據及簽名要發送給私鑰方的數據。
私鑰:由本地保留的密鑰,用於簽名本地數據及驗證用公鑰簽名的數據。             
二、實現原理(以Red Hat簽名爲例):
(1)RH在發佈其官方的RPM包時(如本地RHEL光盤及FTP空間包),會提供一個GPG密鑰文件,即所謂的公鑰。
(2)用戶下載安裝這個RPM包時,引入RH官方的這個RPM GPG公鑰,用來驗證RPM包是不是RH官方簽名的。
導入GPG-KEY:

查找相應的GPG密鑰:
https://www.redhat.com/security/team/key/或/etc/pki/rpm-gpg
導入到RPM:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY

三、簽名及加密概念
        簽名類似於校驗碼,用於識別軟件包是不是被修改過,最常用的的就是我們的GPG及MD5簽名,原方使用一定的字符(MD5)或密碼(GPG私鑰)與軟件進行相應的運算並得到一個定長的密鑰。
        加密是用一定的密鑰對原數據進行修改,即使程序在傳輸中被截獲,只要它不能解開密碼,就不能對程序進行修改,除非破壞掉文件,那樣我們就知道軟件被修改過了。
四、RPM驗證方法
(1)驗證安裝的整個軟件包的文件

rpm -V crontabs-1.10-8

(2)驗證軟件包中的單個文件

rpm -Vf /etc/crontab

注:如果文件沒有被修改過,則不輸出任何信息。
(3)驗證整個軟件包是否被修改過

rpm -Vp AdobeReader_chs-7.0.9-1.i386.rpm

驗證結果:

.......T   /usr/local/Adobe/Acrobat7.0/Reader/GlobalPrefs/reader_prefs
S.5....T   /usr/local/Adobe/Acrobat7.0/bin/acroread

(4)驗證簽名

rpm -K AdobeReader_chs-7.0.9-1.i386.rpm
AdobeReader_chs-7.0.9-1.i386.rpm: sha1 md5 OK

驗證結果含意:

S :file Size differs
M :Mode differs (includes permissions and file type)
5 :MD5 sum differs
D :Device major/minor number mis-match
L :readLink(2) path mis-match
U :User ownership differs
G :Group ownership differs
T :mTime differs






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章