web-dev-qa-db-ja.com

エラー:要求されたデータ型プライマリは利用できません

エラーにより、パッケージをインストールできません。また、最新バージョンにアップデートできません。今何をしたらいいかわかりません。どんな助けも大歓迎です。

エラー:要求されたデータ型プライマリは利用できません

OS情報

  • オペレーティングシステム:Fedora 18
  • アーキテクチャ:X86_64

インターネットから、次のコマンドを実行してリポジトリを再構築しました。しかし、まだ同じエラーが発生します。

実行されるコマンド

# yum clean all
# rpm rebuilddb
# yum grouplist or yum list

より詳しい情報

以下は私のレポファイルです:

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
8
ArunRaj

キャッシュを消去する

まず、キャッシュ領域をクリーンアップします。

$ Sudo yum clean all

各リポジトリをテストする

それでも問題が解決しない場合は、各リポジトリを一度に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

一度に1つのリポジトリを有効にする

そのため、最初の列に私のリポジトリの名前を見ることができます。次に、すべてを無効にし、1つのリポジトリのみを有効にする「yum list」を実行して、正しく機能していることを確認します。

$ 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            

問題の原因となっているリポジトリにアクセスすると、投稿で述べたのと同じエラーが表示されます。

12
slm

同じエラーが発生しました:要求されたデータ型ファイルリストが使用できません。上記の@slmプロセスに従って、どの.repoファイルが問題の原因となっているかを絞り込みましたが、今度はどの個別のリポジトリですか?

.repoファイル内のすべての個々のリポジトリでenable = 1をに変更し、各個人を有効にした後、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.

それで、Admin-> local-> "repo"に移動して、ファイルリストを作成するためのボックスをチェックすることができました。

この後、私はキャッシュを掃除しました:

$ yum clean all

$ rm -rf /var/cache/yum

そして再実行

$ yum list iostat

そしてそれは私の問題を解決しました。

4
silentpete

私の場合、/etc/yum.repo.dディレクトリに手動で追加したローカルのレポジトリが原因で「yum update」を実行すると、このエラーが発生していました。

Myrepo.repoファイルを作成し、 "baseurl"に "http://"を2回入れました。つまり、

baseurl = http://http://isblcncldrp0001.scisb.isban.corp:8900/cm/5/

ご覧のとおり、baseurlは間違っています。余分な「http://」を削除し、「yum update」が正常に実行されました。

0
evinhas