Lỗi: yêu cầu kiểu dữ liệu chính không khả dụng


8

Do lỗi tôi không thể cài đặt bất kỳ gói nào. Và tôi cũng không thể cập nhật lên phiên bản mới nhất. Tôi không biết phải làm gì bây giờ. Bất kỳ trợ giúp nhiều đánh giá cao.

Lỗi: yêu cầu kiểu dữ liệu chính không khả dụng

Thông tin hệ điều hành

  • Hệ điều hành: Fedora 18
  • Kiến trúc: X86_64

Từ internet tôi đã thử các lệnh sau để xây dựng lại kho lưu trữ. Nhưng tôi vẫn nhận được cùng một lỗi.

Lệnh chạy

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

Thêm thông tin

Sau đây là các tệp Repo của tôi:

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

Câu trả lời:


12

Làm sạch bộ đệm

Để bắt đầu, tôi sẽ dọn sạch vùng đệm của tôi.

$ sudo yum clean all

Kiểm tra từng repo

Nếu điều đó không giải quyết được vấn đề thì tôi sẽ thực hiện và cố gắng vô hiệu hóa từng kho lưu trữ 1 tại một thời điểm và sau đó chạy lại yum listlệnh để xem điều đó có giải quyết được vấn đề của bạn không.

Bạn có thể làm điều này thông qua dòng lệnh tạm thời, nhưng trước tiên bạn cần lấy tên thật của kho lưu trữ, tên của các tệp không nhất thiết phải giống nhau.

Ở đây tôi đang sử dụng Fedora 19, ví dụ:

$ 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

Kích hoạt một repo tại một thời điểm

Vì vậy, tôi có thể thấy tên của repos của tôi trong cột đầu tiên. Tiếp theo bạn sẽ muốn thực hiện danh sách `yum nơi bạn vô hiệu hóa mọi thứ và sau đó kích hoạt chỉ một repo, để xác nhận rằng nó hoạt động tốt.

$ 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            

Khi bạn nhận được repo gây ra sự cố, bạn sẽ gặp lỗi tương tự như bạn đã đề cập trong bài đăng của mình.


Cảm ơn các mẹo khắc phục sự cố. Tôi làm theo hướng dẫn. Và kết thúc với những sự thật thú vị. SỰ THẬT 1 --- Tôi đang gặp lỗi tương tự với lệnh này yum repolist | mở rộng SỰ THẬT 2 --- Sau đó, tôi đã kiểm tra từng repo bằng cách kích hoạt nó riêng lẻ. epel repo đang tạo ra lỗi mà chúng ta đang nói đến. Và một yếu tố thú vị hơn là nhận được một lỗi khác như "Lỗi khi lấy dữ liệu kho lưu trữ cho ------, không tìm thấy kho lưu trữ". Những repo đó là fedora-update, fedora-update-tests, mysql-Community-source, mysql-Community, pgdg-92-fedora.
ArunRaj

1
@ user2959196 - Bạn cũng có thể truy cập các tệp .repo và thay đổi enable = 1 thành enable = 0.
slm

1
Trong trường hợp của tôi, chạy yum --disablerepo=* --enablerepo=repo_name updatecho từng repo riêng lẻ, giải quyết vấn đề bằng mọi cách. Tôi đã nhận được Error: requested datatype filelists not availabletrước đây.
Maxim Mazurok

4

Tôi đã gặp lỗi tương tự : các filelpe datatype yêu cầu không có vấn đề. Tôi đã theo dõi quá trình @slm ở trên để thu hẹp tệp .repo nào gây ra sự cố, nhưng bây giờ thì repo cá nhân nào?

Tôi đã bật enable = 1 trên tất cả các repos riêng lẻ trong tệp .repo thành 0 và sau đó kiểm tra lệnh danh sách sau khi bật từng repo riêng lẻ. Cuối cùng, tôi tìm thấy repo cá nhân gây ra vấn đề.

Chúng tôi lưu trữ bộ đệm lưu trữ với Artifactory ... nhưng ngay cả với các kho lưu trữ bên ngoài, nếu bạn có thể duyệt các kho lưu trữ (như http://mirror.centos.org/centos/7.5.1804/os/x86_64/repodata/ ) bạn sẽ xem filelist.xml.gz, đây là tệp bị thiếu mà lỗi đang nói đến.

Đối với Artifactory, tôi đã tìm thấy: 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.

Vì vậy, tôi đã có thể điều hướng đến Quản trị viên -> cục bộ -> "repo" và chọn hộp để tạo filelist.

Sau này, tôi xóa bộ nhớ cache:

$ yum clean all

$ rm -rf /var/cache/yum

và chạy lại

$ yum list iostat

và nó đã giải quyết vấn đề của tôi.


0

Trong trường hợp của tôi, nó đã gây ra lỗi này khi chạy "cập nhật yum" do một bản sửa lỗi cục bộ mà tôi đã thêm vào /etc/yum.repo.dthư mục theo cách thủ công .

Tôi đã tạo một tệp myrepo.repo và trong "cơ sở" tôi đặt hai lần "http: //", ý tôi là:

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

Vì vậy, như bạn có thể thấy, basurl là sai. Tôi đã xóa "http: //" và "yum update" đã chạy thành công.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.