apt tìm kiếm các tập tin i386, mặc dù kiến ​​trúc là amd64


15

Tôi đang cố gắng sử dụng kho lưu trữ tệp để cập nhật linux / ubfox trên máy không kết nối. Kiến trúc cho máy này (uname -a):

x86_64 GNU/Linux

Kết quả dpkg --printarchitecturelà:

amd64

Nó là một máy Trusty Tahr amd64, và nó đặc biệt nói điều này, ví dụ, trong tệp aptitude nguồn.list. Ngoài ra, "Giới thiệu về máy tính này" trong ubfox nói cụ thể máy là 64 bit. Vì vậy, tôi đã cài đặt các gói amd64 trên máy. Tuy nhiên, khi tôi cố gắng thực hiện apt-get update, tôi gặp các lỗi như:

W: Failed to fetch file:/var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu/dists/trusty/main/binary-i386/Packages  File not found

Vì vậy, nói cách khác, mặc dù là máy 64 bit, nhưng apt đang cố gắng đọc các gói i386 một cách không thể giải thích được. Tại sao nó làm điều này và làm cách nào tôi có thể làm cho nó sử dụng các gói 64 bit?

Lưu ý rằng không có gì trong nguồn.list chỉ định i386.

Dòng duy nhất không ghi chú trong tệp nguồn.list là:

deb file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse

Có thể hỗ trợ multiarch này được bật theo mặc định trên Ubuntu vì có một số nhà cung cấp phần mềm đối tác (Skype, cof, cof ..) đủ lười biếng để không biên dịch mọi thứ trên i386 và amd64. Vì các thư viện multiarch sẽ cần thiết, dpkgđược cấu hình theo mặc định để chấp nhận amd64 và nó là anh chị em 32 bit. Tôi nói "có thể" vì tôi chưa tìm thấy tài liệu chính thức nào có thông tin này. Chỉ cần 2 xu của tôi.

Câu trả lời:


25

Trên các amd64cài đặt Ubuntu , i386được bật như một kiến ​​trúc bổ sung theo mặc định. apt& đồng. dự kiến ​​các kho lưu trữ sẽ cung cấp tất cả các kiến ​​trúc được cấu hình, gây ra lỗi mà bạn nhìn thấy.

Vì gương của bạn chỉ có amd64các gói, bạn nên đánh dấu nó như sau:

deb [ arch=amd64 ] file:///var/spool/apt-mirror-trusty/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse

Đó thực sự là vấn đề. Với sửa lỗi này, kho lưu trữ đã được chấp nhận và cập nhật. Cảm ơn.
Tyler Durden

2
dpkg --print-foreign-architecturessẽ hiển thị bất kỳ kiến ​​trúc nào cho phép hỗ trợ multiarch được kích hoạt; Tôi đã có cùng một vấn đề và (có lẽ không ngạc nhiên) lệnh trên đã báo cáo:i386
sxc731

Điều này không giải thích làm thế nào để vô hiệu hóa kiến ​​trúc bổ sung theo mặc định . Đưa [arch=amd64]vào từng debdòng không phải là một giải pháp tốt. Điều này giải thích cách thực hiện: superuser.com/a/714392/376867
midenok

2
@midenok Tôi đã đề nghị thêm một vòng loại vòm vào mỗi mô tả kho lưu trữ ở đâu? Hoàn toàn vô hiệu hóa i386để đối phó với một kho lưu trữ rắc rối là quá mức cần thiết. Lưu ý rằng nếu bạn có nhiều kho lưu trữ gây ra sự cố được mô tả trong câu hỏi, điều đó cho thấy sự cố với trường Kiến trúc của kho lưu trữ , không phải với cấu hình cục bộ.
Stephen Kitt

@Stephen Kitt Được rồi, bạn đã giải quyết một vấn đề cụ thể được mô tả trong câu hỏi. Nhưng giải pháp của bạn không thực tế. Hầu hết mọi người bao gồm cả người hỏi và bản thân tôi đều không muốn xem các gói i386 trong danh sách các gói.
midenok
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.