Lỗi GPG của phiên bản: Phát hành: Các chữ ký sau không hợp lệ: BADSIG '


88

Tôi đã chạy lệnh này trong Terminal:

sudo apt-get update

Cập nhật kết thúc với báo cáo lỗi sau:

W: A error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://extras.ubuntu.com precise Release: The following signatures were invalid: BADSIG 16126D3A3E5C1192 Ubuntu Extras Archive Automatic Signing Key <ftpmaster@ubuntu.com>

W: GPG error: http://ppa.launchpad.net precise Release: The following signatures were invalid: BADSIG 4C1CBC1B69B0E2F4 Launchpad PPA for Jonathan French
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/precise/Release  

Điều này có nghĩa là gì và tại sao nó lại xảy ra?


4
Tôi thấy vấn đề tương tự khi lần đầu tiên cài đặt 12.04. Sau đó, tôi đã thay đổi "Nguồn phần mềm" từ người quản lý phần mềm từ Ấn Độ sang máy chủ khác. Bây giờ tôi không thấy vấn đề này. Nếu bạn đang sử dụng máy chủ Ấn Độ, hãy thay đổi nó và cho chúng tôi biết.
Abhijeet

Thanx Abhijeet. Tôi là người Ấn Độ nhưng ở lại Qatar. Tôi đổi máy chủ thành Ả Rập Saudi. Nhưng kết quả tương tự.
beeju

Câu trả lời:


90

Thử đi:

sudo apt-get clean
sudo mv /var/lib/apt/lists /tmp
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get clean
sudo apt-get update

4
Không cần tạo partialthư mục con. sudo apt-get updatesẽ tự làm điều đó
Chỉ huy Byte

9
Sau khi làm như trên tôi vẫn nhận được lỗi này:Reading package lists... Done W: GPG error: http://developer.download.nvidia.com Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F60F4B3D7FA2AF80
Mona Jalal

Có thể đáng để trả lời câu hỏi được hỏi (và kiếm được nhiều lượt nâng cấp hơn ;-)).
Witold Kaczurba

lỗi gặp phải ở bước thứ hai:mv: cannot move '/var/lib/apt/lists' to '/tmp/lists': Directory not empty
Người dùng Internet

Bạn có thể giải thích chính xác những gì nó làm? Cảm ơn bạn,
Hendrik

64

Thông báo này đang hiển thị vì khóa gpg cho kho lưu trữ đó bị thiếu trong cơ sở dữ liệu khóa apt của bạn.

Để nhập khóa, mở một thiết bị đầu cuối và nhập các lệnh này

gpg --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192 

Các khóa pgp hầu hết được phân phối trong một số kho khóa. Các khóa liên quan đến Ubuntu thường được tìm thấy trong keyserver.ubuntu.com. Nhưng nếu thất bại, bạn có thể sử dụng thay thế. Như -

gpg --keyserver hkp://subkeys.pgp.net --recv-keys 16126D3A3E5C1192

Bạn phải thay thế phần chữ và số bằng phím cụ thể. Hãy chắc chắn rằng chìa khóa là một trong những bạn tin tưởng . Bất kỳ kho lưu trữ với khóa này, sẽ có thể cài đặt bất kỳ gói nào mà không cần cảnh báo.

Bạn sẽ thấy đầu ra sau nếu cách trên thành công

gpg: Total number processed: 1
gpg:               imported: 1

Sau đó chạy lệnh này:

gpg --export --armor 16126D3A3E5C1192 | sudo apt-key add - 

Lưu ý các -dấu hiệu sau add.

Sau đó sudo apt-get update, bạn sẽ không có tin nhắn như vậy sau này.


1
Xin chào @ anwar ở đâu / làm thế nào để tôi nhận được chìa khóa mà tôi tin tưởng?
Minnie Shi

1
@MinnieShi Khóa có trong thông báo lỗiThe following signatures were invalid: BADSIG 16126D3A3E5C1192
Kalyan Raghu

1
Lưu ý rằng apt-key addlệnh sẽ trả về "OK".
COil ngày 1

Tuyệt vời, nên là câu trả lời được chấp nhận! Cảm ơn.
Jacob

13

Tôi thấy rằng chỉ cần làm

sudo rm -rf /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists

đã làm cho tôi.


Sử dụng sudo rm -rf / var / lib / apt / danh sách / * && sudo mkdir -p / var / lib / apt / danh sách để duy trì bất cứ điều gì / var / lib / apt / danh sách cho phép có thể có
131

1
Không cần tạo partialthư mục con. sudo apt-get updatesẽ tự làm điều đó
Chỉ huy Byte

9

Bạn có thể thử tập lệnh của tôi để tự động nhận tất cả các khóa GPG cho PPA bạn sử dụng: smartupdate.sh .

Nó sẽ khởi chạy apt-get update, sau đó tìm tất cả các lỗi GPG và nhận khóa cho các chữ ký GPG được tìm thấy. Trong trường hợp của bạn, nó sẽ chỉ khởi chạy

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4C1CBC1B69B0E2F4

nhưng khi bạn thêm một vài PPA không dấu, việc thêm các khóa GPG theo cách thủ công sẽ trở nên nhàm chán. :)


6

Các lệnh sau đã giải quyết vấn đề cho tôi:

sudo -i
apt-get clean
cd /var/lib/apt
mv lists lists.old
mkdir -p lists/partial
apt-get clean
apt-get update

1
Không cần tạo partialthư mục con. sudo apt-get updatesẽ tự làm điều đó
Chỉ huy Byte

4

Tôi đã có một lỗi tương tự. Nhưng thay vì BADSIGtôi đã nhận được KEYEXPIREDrepo PostgreSQL:

W: A error occurred during the signature verification.
  The repository is not updated and the previous index files will be used.
  GPG error: http://apt.postgresql.org precise-pgdg Release:
  The following signatures were invalid: KEYEXPIRED 1381654177

Giải pháp được mô tả hoàn hảo ở đây nhưng đây là những gì tôi đã làm để giải quyết nó:

$ sudo apt-key list | grep -B1 PostgreSQL
$ sudo apt-key del ACCC4CF8
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Và bây giờ $ sudo apt-get updatesẽ hoạt động hoàn hảo!


1

Mẹo này (từ Actionparsnip ) đã làm việc cho tôi:

Thử:

sudo fuser -vvv /var/lib/dpkg/lock
sudo rm /var/lib/apt/lists/lock
sudo cp -arf /var/lib/dpkg /var/lib/dpkg.backup
sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status
sudo cp /var/lib/dpkg/available-old /var/lib/dpkg/available
sudo rm -rf /var/lib/dpkg/updates/*
sudo rm -rf /var/lib/apt/lists
sudo rm /var/cache/apt/*.bin
sudo mkdir /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists/partial
LANG=C;sudo apt-get clean
LANG=C;sudo apt-get autoclean
LANG=C;sudo apt-get --purge autoremove
LANG=C;sudo apt-get update -o APT::Cache-Limit=25165824
sudo dpkg --clear-avail
sudo dpkg --configure -a
LANG=C;sudo apt-get -f install
LANG=C;sudo apt-get --fix-missing install
LANG=C;sudo apt-get update -o APT::Cache-Limit=25165824 && sudo apt-get dist-upgrade

Tìm thấy trong:
https://answers.launchpad.net/ubfox/+source/update-manager/+question/194077


1

Điều này có thể là do sự cố bộ đệm của proxy HTTP. Nếu bạn có một trong những nơi nào đó dọc theo tuyến đường như tôi, bạn có thể yêu cầu Apt yêu cầu nó tạm thời phá vỡ bộ đệm:

sudo apt-get update -o Acquire::http::No-Cache=True

-2

Bạn có thể sử dụng launchpad-getkeysđể sửa lỗi này. Mở một thiết bị đầu cuối và nhập:

sudo apt-get install launchpad-getkeys
sudo launchpad-getkeys

Sau đó

sudo apt-get update
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.