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

百般查找才知道是因為在 /etc/yum.repos.d 目錄下,有關于yum repository的配置檔案中,列有如下的GPG key:
這個配置告訴YUM,這個repository的GPG key存在于磁盤上。而當YUM在路徑 /etc/pki/rpm-gpg 下找不到這個GPG key的時候,就會報如上的錯誤了。
解決方案:
然後再次運作 yum 指令就可以成功了。當然,也有些包是需要先安裝epel之後才能裝上的。安裝epel的方法是:
因為好奇,搜尋了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包時(如本地RHELCD光牒及FTP空間包),會提供一個GPG密鑰檔案,即所謂的公鑰。
(2)使用者下載下傳安裝這個RPM包時,引入RH官方的這個RPM GPG公鑰,用來驗證RPM包是不是RH官方簽名的。
導入GPG-KEY:
三、簽名及加密概念
簽名類似于校驗碼,用于識别軟體包是不是被修改過,最常用的的就是我們的GPG及MD5簽名,原方使用一定的字元(MD5)或密碼(GPG私鑰)與軟體進行相應的運算并得到一個定長的密鑰。
加密是用一定的密鑰對原資料進行修改,即使程式在傳輸中被截獲,隻要它不能解開密碼,就不能對程式進行修改,除非破壞掉檔案,那樣我們就知道軟體被修改過了。
四、RPM驗證方法
(1)驗證安裝的整個軟體包的檔案
(2)驗證軟體包中的單個檔案
注:如果檔案沒有被修改過,則不輸出任何資訊。
(3)驗證整個軟體包是否被修改過
驗證結果:
(4)驗證簽名
驗證結果含意: