如何修复 CentOS、RHEL 或 Fedora 上的 yum 错误如何修复 CentOS、RHEL 或 Fedora 上的 yum 错误如何修复 CentOS、RHEL 或 Fedora 上的 yum 错误如何修复 CentOS、RHEL 或 Fedora 上的 yum 错误
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何修复 CentOS、RHEL 或 Fedora 上的 yum 错误

在基于 Red Hat 的系统(例如 RHEL、CentOS 或 Fedora)上,yum 用作软件包管理工具,用于安装、更新和删除 RPM 软件包。当您尝试使用 yum 命令安装软件包时,可能会因各种原因遇到错误。在这篇文章中,我将描述 yum 命令的几种常见错误症状,并解释如何修复 yum 错误。

1.修复404错误

症状:当您尝试使用 yum 安装软件包时,yum 抛出错误:“请求的 URL 返回错误:404


Loaded plugins: fastestmirror
base                                                     | 3.7 kB     00:00
base/primary_db                                          | 4.4 MB     00:09
extras                                                   | 3.5 kB     00:00
http://mirror.steadfast.net/centos/6.4/extras/x86_64/repodata/e0e507c76dc5e5aa66c1f32632b9dc0a9759d97031ab5a028562a7cb7be6e294-primary.sqlite.bz2:
[Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404
Not Found"
Trying other mirror.
http://mirrors.seas.harvard.edu/centos/6.4/extras/x86_64/repodata/e0e507c76dc5e5aa66c1f32632b9dc0a9759d97031ab5a028562a7cb7be6e294-primary.sqlite.bz2:
[Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404
Not Found"
Trying other mirror.

当 yum 下载的元数据已过时时,您可能会收到这些 404 错误。

要修复 yum 生成的 404 错误,请按如下方式清理 yum 元数据。


$ sudo yum clean metadata

或者您可以清除整个 yum 缓存:


$ sudo yum clean all

2.修复连接失败错误

症状:运行 yum 命令时出现“网络无法访问”或“无法连接到主机”错误。


Loaded plugins: fastestmirror, presto
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist
http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was
14: PYCURL ERROR 7 - "Failed to connect to
2a02:2498:1:3d:5054:ff:fed3:e91a: Network is unreachable"
Error: Cannot find a valid baseurl for repo: base

http://mirror.nexcess.net/CentOS/6.4/os/x86_64/repodata/repomd.xml:
[Errno 14] PYCURL ERROR 7 - "couldn't connect to host"
Trying other mirror.
http://mirrordenver.fdcservers.net/centos/6.4/os/x86_64/repodata/repomd.xml:
[Errno 14] PYCURL ERROR 7 - "couldn't connect to host"
Trying other mirror.
http://mirrors.cmich.edu/centos/6.4/os/x86_64/repodata/repomd.xml:
[Errno 14] PYCURL ERROR 7 - "couldn't connect to host"
Trying other mirror.

该错误意味着您由于某种原因无法正确连接到存储库服务器。如果您仍然可以 ping 服务器而没有任何问题,请检查您的系统是否位于代理后面。如果您在代理后面运行 yum,但未在 yum 配置中指定代理,您将收到类似上述的连接失败错误。

要在 yum 配置中配置代理:


$ sudo vi /etc/yum.conf

[main]
proxy=http://proxy.com:8000

3.修复元数据校验和错误

症状:在运行 yum 命令时收到“元数据文件与校验和不匹配”的信息。


epel/pkgtags                                             | 466 kB     00:14     
http://mirror.steadfast.net/epel/6/x86_64/repodata/pkgtags.sqlite.gz: [Errno -1] Metadata file does not match checksum
Trying other mirror.

当 yum 下载的元数据已过时时,您可能会收到元数据校验和错误。

要修复 yum 校验和错误,请清理 yum 元数据:


$ sudo yum clean metadata

4. 修复 Yum 锁定错误

症状:当您尝试使用 yum 安装软件包时,您会收到一条错误消息,指出“另一个应用程序当前正在持有 yum 锁”。


Loaded plugins: langpacks, presto, refresh-packagekit
Existing lock /var/run/yum.pid: another copy is running as pid 1880.
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: PackageKit
    Memory : 178 M RSS (586 MB VSZ)
    Started: Tue Jul  9 09:43:17 2013 - 00:12 ago
    State  : Sleeping, pid: 1880

此错误的罪魁祸首通常是 PackageKit,它负责基于 Red Hat 的系统上的自动更新。 PackageKit 进程在启动时自动启动,并持有 yum 锁。

要修复该错误,请关闭系统上的 PackageKit,这样它就不会执行自动更新检查。以下是禁用 PackageKit 的说明。

重新启动桌面后,您将不再收到 yum 锁定错误。

5.修复存储库数据库读取错误

症状:当您使用 yum 安装软件包时,您会收到错误消息“压缩文件在检测到逻辑流结束之前结束”


Loaded plugins: langpacks, refresh-packagekit
Error: Error reading from file /var/cache/yum/x86_64/20/rpmfusion-free-updates/1461ed771601e7963990534c16584ab963d9c9f4eea94348ba357b93ab3c621f-primary.sqlite.bz2: compressed file ended before the logical end-of-stream was detected

当 yum 命令在下载存储库数据库时被中断时,可能会发生此错误。因此保存的数据库不完整,并被认为已损坏。

要解决此问题,请运行以下命令清理 yum 数据库:


$ sudo yum clean metadata

6.修复存储库元数据读取错误

症状:当您使用 yum 安装或搜索任何软件包时,您会收到以下错误:


removing mirrorlist with no valid mirrors: /var/cache/yum/i386/6/updates/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: updates

此错误可能是由于 yum 元数据问题导致的。要解决此问题,请清理 yum 数据,包括元数据和本地缓存。


$ sudo yum clean all

7.修复包数据库错误

症状:运行 yum 命令时出现“无法打开 /var/lib/rpm 中的软件包数据库”错误。


error: rpmdb: BDB0113 Thread/process 6983/140505029793600 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 -  (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

当本地 RPM 数据库由于某种原因损坏或丢失时,可能会发生此问题。以下是如何重新创建 RPM 数据库来修复此错误。


$ sudo rm -f /var/lib/rpm/__db*
$ sudo db_verify /var/lib/rpm/Packages
$ sudo rpm --rebuilddb
$ sudo yum clean all
©2015-2025 艾丽卡 support@alaica.com