yum 不再能夠檢測/訪問儲存庫
在我嘗試安裝 google chrome 並使用
--add-repo
添加 chrome 儲存庫的命令之前,Yum 工作正常。從那以後,每當我做一個
sudo yum install
, yum 只搜尋 chrome 的儲存庫。所以我刪除了chrome的repo文件。但即使在重新啟動系統後,yum 也不會訪問任何儲存庫。
出現
sudo yum search gtk+
gtk+ 的結果,但嘗試安裝它sudo yum install gtk2.x86_64
沒有用。它給出了輸出:Loaded plugins: langpacks Nothing to do
我怎樣才能解決這個問題?我正在使用 Fedora 20、64 位版本。
ls -l /etc/yum.repos.d
顯示以下輸出:-rw-r–r–。1 根 183 Jan 26 19:03 adobe-linux-x86_64.repo
-rw-r–r–。1 根 0 Feb 2 09:34 fedora.repo
-rw-r–r–。1 根 0 Feb 2 09:34 fedora-updates.repo
-rw-r–r–。1 root root 0 Feb 2 09:34 fedora-updates-testing.repo
-rw-r–r–。1 根 75 Jan 26 11:52 jenkins.repo
-rw-r–r–。1 根 76 Jan 26 11:51 jenkins.repo.rpmnew
-rw-r–r–。1 個根 1241 2013 年 3 月 14 日 rpmfusion-free-rawhide.repo
-rw-r–r–。1 根 1172 Jan 26 19:04 rpmfusion-free.repo
-rw-r–r–。1 根 1170 Jan 26 19:03 rpmfusion-free-updates.repo
-rw-r–r–。1 根 1230 2013 年 6 月 29 日 rpmfusion-free-updates-testing.repo
我不確定誰告訴你使用
--add-repo
開關,但這幾乎不是添加新儲存庫的“正確”方式。.rpm
相反,您應該為您嘗試安裝的儲存庫使用一個文件,並使用該文件rpm -ivh somerepo.rpm
將該儲存庫.repo
文件安裝到目錄/etc/yum.repo.d/
中,並在執行命令時顯示 RPM 密鑰rpm -qa gpg-pubkey*
。$ rpm -qa gpg-pubkey* gpg-pubkey-e06f8c93-51760257 gpg-pubkey-98ab5139-4bf2d0b0 gpg-pubkey-7fac5991-4615767f gpg-pubkey-fb4b18e6-50b96bfd ...
您還可以使用標題為啟用 Google YUM 儲存庫的這篇博文中描述的這 2 個範例之一為 Chrome 手動創建儲存庫文件。
32 位
[google-chrome] name=google-chrome - 32-bit baseurl=http://dl.google.com/linux/chrome/rpm/stable/i386 enabled=1 gpgcheck=1 gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
64 位
[google-chrome] name=google-chrome - 64-bit baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64 enabled=1 gpgcheck=1 gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
這會拯救你現在的痛苦。但現在回到解決這個問題。
使用 RPM 進行診斷
您可以使用 RPM 來確定哪些 RPM 受到了影響,我將重點關注與安裝
.repo
要啟動的文件相關的 RPM,以及與其yum
自身相關的軟體包,因為我懷疑您的/etc/yum.conf
文件或較低級別的.repo
文件在這裡有問題。您可以檢查文件的一致性,比較它們在 RPM 數據庫中維護的校驗和,如下所示:
$ rpm -qfVv /etc/yum.conf /etc/yum.repo.d/* ......... c /etc/logrotate.d/yum ......... /etc/yum ......... c /etc/yum.conf ......... /etc/yum.repos.d ......... /etc/yum/fssnap.d ......... /etc/yum/pluginconf.d ......... /etc/yum/protected.d ......... /etc/yum/vars ......... c /etc/yum/version-groups.conf ......... /usr/bin/yum ...
此輸出顯示與 RPM 關聯的任何文件是否
/etc/yum.conf
已被修改或損壞。如果文件已被修改,輸出將如下所示:$ touch /etc/yum.conf $ rpm -qfVv /etc/yum.conf ......... c /etc/logrotate.d/yum ......... /etc/yum .......T. c /etc/yum.conf ...
請注意
T
左側點列中的 。這告訴我們文件上的時間不同。有關or開關rpm
的更多資訊,請參見手冊頁。-V``--verify
9 個字元中的每一個都表示文件的屬性與數據庫中記錄的那些屬性的值進行比較的結果。一個“。” (句點)表示測試通過,而單個“?” (問號)表示無法執行測試(例如文件權限阻止讀取)。否則,(助記加粗)字元表示相應
--verify
測試失敗:S file Size differs M Mode differs (includes permissions and file type) 5 digest (formerly MD5 sum) differs D Device major/minor number mismatch L readLink(2) path mismatch U User ownership differs G Group ownership differs T mTime differs P caPabilities differ
您可能需要重新下載有問題的 RPM 並使用
rpm
.我的儲存庫被禁用了嗎?
您可以使用此命令確認添加 Chrome YUM 儲存庫沒有意外刪除其他 YUM 儲存庫。此命令將執行此操作:
$ yum repolist all
輸出截圖
注意右邊的列。任何被禁用的倉庫都是紅色的,任何被啟用的都是綠色的。檢查以確保所有儲存庫都已啟用(綠色)。
如果不是,那麼您可以瀏覽
.repo
文件並將有問題的文件更改為“ENABLED=1”或使用yum-config-manager
重新啟用它們。$ sudo yum-config-manager --enable <repo name>
我被困住了……我的 .repo 文件被“軟管”了???
如果您發現您的
.repo
文件有問題。也許它們現在是零長度文件,那麼您的 yum 設置基本上是搞砸了。但一切都沒有失去。rpm
您可以使用和使事物恢復原狀yum
。
- 我不能只重新安裝 RPM 嗎?
是的,您可以,但是要安裝哪個?如果您不知道要安裝哪些版本,您可以使用現有的 RPM 數據庫推斷出這樣的版本。我在 F19 上,所以這些是
fedora*.repo
文件的相應包。$ rpm -qf /etc/yum.repos.d/fedora* | sort -u fedora-release-19-6.noarch
因此,您正在尋找一個
.rpm
名為fedora-release-20*.noarch
. 這是 F20 安裝媒體中的那個文件:$ rpm -Fvh http://dl.fedoraproject.org/pub/fedora/linux/releases/20/Fedora/ $ (uname -p) /os/Packages/f/fedora-release-20-1.noarch.rpm
對於 RPMFusion 儲存庫,您可以執行相同的操作:
$ sudo rpm -qf /etc/yum.repos.d/rpmfusion-* | sort -u rpmfusion-free-release-19-1.noarch rpmfusion-nonfree-release-19-1.noarch
因此,您正在尋找
.rpm
名為rpmfusion-free-release-20*.noarch
&的文件rpmfusion-nonfree-release-20*.noarch
。以下是 RPM Fusion 網站上的文件:$ sudo rpm -Fvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-20.noarch.rpm $ sudo rpm -Fvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-20.noarch.rpm
- 重新添加 fedora-release 儲存庫
另一種方法是使用命令
yum-config-manager
重新添加fedora-release
儲存庫。$ sudo yum-config-manager --add-repo=http://download.fedoraproject.org/pub/fedora/linux/updates/testing/20/$(uname -p)/
*注意:此命令將根據您的系統*架構使用.
uname -p
3. 重新安裝?修理東西的另一種方法是使用
yum
命令reinstall
。$ sudo yum reinstall fedora-release
**注意:**此方法可能會修復其他儲存庫,例如
fedora-updates
repos,但至少需要安裝fedora
repo 的部分工作,所以它有點像“catch 22”。我建議您在完成上述第 1 步和第 2 步中的項目後執行此命令。參考