Linux

yum 不再能夠檢測/訪問儲存庫

  • February 4, 2014

在我嘗試安裝 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

輸出截圖 百勝的ss

注意右邊的列。任何被禁用的倉庫都是紅色的,任何被啟用的都是綠色的。檢查以確保所有儲存庫都已啟用(綠色)。

如果不是,那麼您可以瀏覽.repo文件並將有問題的文件更改為“ENABLED=1”或使用yum-config-manager重新啟用它們。

$ sudo yum-config-manager --enable <repo name>

我被困住了……我的 .repo 文件被“軟管”了???

如果您發現您的.repo文件有問題。也許它們現在是零長度文件,那麼您的 yum 設置基本上是搞砸了。但一切都沒有失去。rpm您可以使用和使事物恢復原狀yum

  1. 我不能只重新安裝 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
  1. 重新添加 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-updatesrepos,但至少需要安裝fedorarepo 的部分工作,所以它有點像“catch 22”。我建議您在完成上述第 1 步和第 2 步中的項目後執行此命令。

參考

引用自:https://unix.stackexchange.com/questions/112256