it-swarm-vi.tech

Tôi nên làm gì khi nhận được thông báo lỗi KEYEXPIRED sau khi cập nhật apt-get?

Trong khi cập nhật các gói của tôi trên một hệ thống dựa trên debian bởi

Sudo apt-get update

Tôi đã nhận được thông báo lỗi đó:

Reading package lists... Done
W: GPG error: ftp://ftp.fr.debian.org stable/non-US Release: 
The following signatures were invalid: KEYEXPIRED 1138684904

Tôi nên làm gì để khắc phục điều này?

74
paulgreg

Trên Debian Wiki về SecureAPT , tôi thấy rằng tôi nên xóa dòng chứa non-us từ /etc/apt/source.list.

Tôi thực sự đã làm điều đó và nó đã làm việc.

1
paulgreg

Để tìm bất kỳ khóa kho lưu trữ đã hết hạn và ID của chúng, hãy sử dụng apt-key như sau:

LANG=C apt-key list | grep expired

Bạn sẽ nhận được một kết quả tương tự như sau:

pub   4096R/BE1DB1F1 2011-03-29 [expired: 2014-03-28]

ID khóa là bit sau dấu / I E. BE1DB1F1 trong trường hợp này.

Để cập nhật khóa, hãy chạy

Sudo apt-key adv --recv-keys --keyserver keys.gnupg.net BE1DB1F1

Lưu ý : Cập nhật khóa rõ ràng sẽ không hoạt động nếu nhà bảo trì gói chưa (chưa) tải lên khóa mới. Trong trường hợp đó, bạn có thể làm rất ít việc ngoài việc liên hệ với người bảo trì, báo lỗi cho bản phân phối của bạn, v.v.

Một lớp lót để cập nhật tất cả các khóa đã hết hạn : (cảm ơn @ryanpcmcquen)

for K in $(apt-key list | grep expired | cut -d'/' -f2 | cut -d' ' -f1); do Sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $K; done
118
kynan

Bạn cần lấy khóa mới hơn và thêm nó, tại thời điểm đó apt sẽ phát hiện ra nó và không phàn nàn. Điều này thường không xảy ra, nhưng đôi khi nó xảy ra. Những gì bạn thực sự cần là để biết mã hex của khóa bạn cần thêm; một khi bạn có điều đó, nó sẽ xuống dốc khá nhiều từ đó.

Vài ví dụ:

6
Avery Payne

Tôi đã có lỗi tương tự, nhưng vấn đề là trong thời gian hệ thống. Năm 1961 :)

Tôi đã sửa ngày/giờ hệ thống và sau đó có thể cập nhật mà không cần pro

2
slava

Nó cũng có thể xảy ra khi ngày không chính xác.

Kiểm tra ngày với

date

Nếu nó được định cấu hình sai, hãy làm như sau để đặt đồng bộ hóa múi giờ và ngày tự động của bạn.

apt-get install ntp ntpdate && service ntp stop
dpkg-reconfigure tzdata
ntpdate-debian
service ntp start
1
Aley

Một nguyên nhân rất khó xảy ra, nhưng đôi khi có thể, gây ra lỗi này là nếu đã thêm cùng một khóa hai lần với các ngày hết hạn khác nhau. Bạn có thể biết rằng đã làm như vậy để câu trả lời này có liên quan đến bạn.

Điều này có thể xảy ra, như đã làm với tôi, khi lưu trữ kho lưu trữ của riêng bạn bằng các khóa riêng của bạn. Nếu bạn, khi khóa sắp hết hạn, chỉ cần kéo dài tuổi thọ của nó thay vì thay đổi và nếu bạn đã cài đặt khóa gốc bằng cách sử dụng trước nhưng khóa được cập nhật bằng gói gỡ lỗi, thì khóa cũ sẽ nằm trong /etc/apt/trusted.gpg, trong khi tệp mới kết thúc dưới dạng một tệp riêng biệt trong /etc/apt/trusted.gpg.d/. Khóa cũ sẽ tạo bóng cho khóa mới, sẽ bị bỏ qua hoàn toàn bởi apt-key. Xóa khóa cũ bằng cách chạy gpg --keyring /etc/trusted.gpg --delete-keys <keyid> và khóa mới của bạn sẽ bị phát hiện.

Đây là một chút cấu hình góc không chuẩn, nhưng tôi hy vọng câu trả lời của tôi có thể cứu được một số nhầm lẫn trong trường hợp bất kỳ ai khác gặp phải vấn đề này vì lý do tương tự như tôi đã làm.

1
sampi

Một oneliner đơn giản hơn:

for key in $(Sudo apt-key list | awk -v FS='[ /:]+' '/expire[sd]/ {print $3}'); do Sudo apt-key adv --recv-keys --keyserver keys.gnupg.net $key; done

Tôi chỉ cảm thấy rằng nếu bạn đang làm những việc như sử dụng cut nhiều lần, có một công cụ tốt hơn. (Ngoài ra, tôi đã tạo cái này dựa trên một câu hỏi khác .)

1
Bruno Bronosky

Bạn không phải làm bất cứ điều gì. Nó chỉ là một cảnh báo, bạn có thể thấy điều đó từ W: tiếp đầu ngữ.

0
Michael Franzl