错误:请求的数据类型主要不可用

Aru*_*Raj 9 yum fedora rpm repository

由于错误,我无法安装任何软件包。而且我也无法更新到最新版本。我现在不知道该怎么办。非常感谢任何帮助。

错误:请求的数据类型主要不可用

操作系统信息

  • 操作系统:Fedora 18
  • 架构:X86_64

在互联网上,我尝试了以下命令来重建存储库。但我仍然遇到同样的错误。

命令运行

# yum clean all
# rpm rebuilddb
# yum grouplist or yum list
Run Code Online (Sandbox Code Playgroud)

更多信息

以下是我的回购文件:

adobe-linux-x86_64.repo
epel.repo
fedora.repo
fedora-updates.repo
fedora-updates-testing.repo
livna.repo
mysql-community.repo
mysql-community-source.repo
pgdg-92-fedora.repo
rpmfusion-free-rawhide.repo
rpmfusion-free.repo
rpmfusion-free-updates.repo
rpmfusion-free-updates-testing.repo
rpmfusion-nonfree-rawhide.repo
rpmfusion-nonfree.repo
rpmfusion-nonfree-updates.repo
rpmfusion-nonfree-updates-testing.repo
Run Code Online (Sandbox Code Playgroud)

slm*_*slm 12

清理缓存

对于初学者,我会清理我的缓存区域。

$ sudo yum clean all
Run Code Online (Sandbox Code Playgroud)

测试每个回购

如果这不能解决问题,那么我会尝试一次禁用每个存储库 1,然后重新运行该yum list命令以查看是否可以解决您的问题。

您可以暂时通过命令行执行此操作,但首先您需要获取存储库的实际名称,文件的名称不一定相同。

这里我使用 Fedora 19,例如:

$ yum repolist | expand
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit
repo id                                       repo name                   status
fedora/19/x86_64                              Fedora 19 - x86_64          36,253
fedora-debuginfo/19/x86_64                    Fedora 19 - x86_64 - Debug   6,635
google-chrome                                 google-chrome                    3
rpm-sphere                                    RPM Sphere                   7,679
rpmfusion-free/19/x86_64                      RPM Fusion for Fedora 19 -     462
rpmfusion-free-debuginfo/19/x86_64            RPM Fusion for Fedora 19 -     157
rpmfusion-free-updates/19/x86_64              RPM Fusion for Fedora 19 -     414
rpmfusion-free-updates-debuginfo/19/x86_64    RPM Fusion for Fedora 19 -     149
rpmfusion-nonfree/19/x86_64                   RPM Fusion for Fedora 19 -     219
rpmfusion-nonfree-debuginfo/19/x86_64         RPM Fusion for Fedora 19 -      62
rpmfusion-nonfree-updates/19/x86_64           RPM Fusion for Fedora 19 -     497
rpmfusion-nonfree-updates-debuginfo/19/x86_64 RPM Fusion for Fedora 19 -     170
*updates/19/x86_64                            Fedora 19 - x86_64 - Update 17,597
*updates-debuginfo/19/x86_64                  Fedora 19 - x86_64 - Update  2,241
virtualbox/19/x86_64                          Fedora 19 - x86_64 - Virtua     10
repolist: 72,548
Run Code Online (Sandbox Code Playgroud)

一次启用一个回购

所以我可以在第一列中看到我的存储库的名称。接下来,您需要执行 `yum list,在其中禁用所有内容,然后仅启用一个 repo,以确认它正常工作。

$ yum --disablerepo=* --enablerepo=google-chrome list available
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit
Available Packages
google-chrome-beta.x86_64                                                                               33.0.1750.91-1            
Run Code Online (Sandbox Code Playgroud)

当您到达导致问题的存储库时,您应该会遇到您在帖子中提到的相同错误。


小智 6

我遇到了同样的错误:请求的数据类型文件列表不可用问题。我按照上面的@slm 流程缩小了导致问题的 .repo 文件的范围,但现在是哪个单独的 repo?

我将.repo 文件中所有单独存储库的enable=1设置为0,然后在启用每个单独存储库后测试 list 命令。最终我找到了导致问题的个人回购。

我们使用 Artifactory 托管存储库缓存...但即使使用外部托管的存储库,如果您可以浏览存储库(例如http://mirror.centos.org/centos/7.5.1804/os/x86_64/repodata/),您将参见 filelist.xml.gz,这是错误所指的缺失文件。

对于Artifactory,我发现:https : //www.jfrog.com/confluence/display/RTF/RPM+Repositories

Indexing the File List 
The filelists.xml metadata file of an RPM repository contains a list of all
the files in each package hosted in the repository. When the repository
contains many packages, reindexing this file as a result of interactions
with the YUM client can be resource intensive causing a degradation of
performance. Therefore, from version 5.4, reindexing this file is initially
disabled when an RPM repository is created. To enable indexing
filelists.xml, set the Enable File List Indexing checkbox.
Run Code Online (Sandbox Code Playgroud)

所以我能够导航到 Admin -> local -> "repo" 并选中该框以创建文件列表。

在此之后,我清理了缓存:

$ yum clean all

$ rm -rf /var/cache/yum

并重新跑

$ yum list iostat

它解决了我的问题。