Ошибка: запрошенный первичный тип данных недоступен


8

По ошибке не могу установить ни одного пакета. А также я не могу обновить до последней версии. Я не знаю, что делать сейчас. Любая помощь высоко ценится.

Ошибка: запрошенный первичный тип данных недоступен

Информация об ОС

  • Операционная система: 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

Ответы:


12

Почистить кеш

Для начала я бы очистил свою область кэша.

$ 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

Включение одного репо за раз

Так что я вижу имена моих репозиториев в самом первом столбце. Далее вы захотите создать `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            

Когда вы попадете в репозиторий, который вызывает проблему, вы должны получить ту же ошибку, о которой вы упоминали в своем посте.


Спасибо за советы по устранению неполадок. Я следовал инструкциям. И заканчивайте следующими интересными фактами. ФАКТ 1 --- Я получаю ту же ошибку с этой командой yum repolist | разверните ФАКТ 2 --- Затем я проверил каждый репо, включив его по отдельности. Репо epel выдает ошибку, о которой мы говорим. И еще один интересный фактор - это еще одна ошибка, такая как «Ошибка получения данных репозитория для ------, репозиторий не найден». Этими репозиториями являются fedora-updates, fedora-updates-testing, mysql-community-source, mysql-community, pgdg-92-fedora.
ArunRaj

1
@ user2959196 - Вы также можете зайти в файлы .repo и изменить enabled = 1 на enabled = 0.
SLM

1
В моем случае, запуск yum --disablerepo=* --enablerepo=repo_name updateдля каждого отдельного репо, все равно решил проблему. Я получал Error: requested datatype filelists not availableраньше.
Максим Мазурок

4

Я столкнулся с той же ошибкой: запрошенный файл списков типов не доступен . Я следовал описанному выше процессу @slm, чтобы выяснить, какой файл .repo вызывал проблему, а теперь какой отдельный репозиторий?

Я установил enable = 1 для всех отдельных репо в файле .repo на 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.

Поэтому я смог перейти к Admin -> local -> "repo" и установить флажок для создания списка файлов.

После этого я очистил кеш:

$ yum clean all

$ rm -rf /var/cache/yum

и снова

$ yum list iostat

и это решило мою проблему.


0

В моем случае эта ошибка возникала при запуске «обновления yum» из-за локального репозитория, который я вручную добавил в /etc/yum.repo.dкаталог.

Я создал файл myrepo.repo, и в «baseurl» я поместил дважды «http: //», я имею в виду:

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

Итак, как вы можете видеть, baseurl не так. Я удалил лишние "http: //" и "yum update", выполненные с успехом.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.