“ ข้อผิดพลาด GPG: เผยแพร่: ลายเซ็นต่อไปนี้ไม่ถูกต้อง: BADSIG”


88

ฉันรันคำสั่งนี้ใน Terminal:

sudo apt-get update

การอัปเดตลงท้ายด้วยรายงานข้อผิดพลาดต่อไปนี้:

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  

สิ่งนี้หมายถึงอะไรและทำไมมันเกิดขึ้น?


4
ฉันเห็นปัญหาที่คล้ายกันเมื่อฉันติดตั้ง 12.04 ครั้งแรก หลังจากนั้นฉันเปลี่ยน "แหล่งที่มาของซอฟต์แวร์" จากตัวจัดการซอฟต์แวร์จากอินเดียเป็นเซิร์ฟเวอร์อื่น ตอนนี้ฉันไม่เห็นปัญหานี้ หากคุณใช้เซิร์ฟเวอร์อินเดียให้เปลี่ยนและแจ้งให้เราทราบ
Abhijeet

Thanx Abhijeet ฉันเป็นคนอินเดีย แต่อยู่ที่นี่ในกาตาร์ฉันเปลี่ยนเซิร์ฟเวอร์เป็นซาอุดิอาระเบีย แต่ผลลัพธ์เดียวกัน
beeju

คำตอบ:


90

ลองสิ่งนี้:

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
ไม่จำเป็นต้องสร้างpartialไดเรกทอรีย่อย sudo apt-get updateจะทำเอง
ผู้บัญชาการ Byte

9
หลังจากทำตามข้างต้นฉันยังคงได้รับข้อผิดพลาดนี้: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

มันอาจจะคุ้มค่าในการตอบคำถามที่ถาม (และรับ upvotes มากกว่า ;-))
Witold Kaczurba

พบข้อผิดพลาดในขั้นตอนที่สอง:mv: cannot move '/var/lib/apt/lists' to '/tmp/lists': Directory not empty
ผู้ใช้อินเทอร์เน็ต

คุณช่วยอธิบายสิ่งนี้ได้อย่างไร? ขอบคุณ
Hendrik

64

ข้อความนี้แสดงขึ้นเนื่องจากคีย์ gpg สำหรับที่เก็บนั้นหายไปในฐานข้อมูล apt-key ของคุณ

หากต้องการนำเข้ากุญแจให้เปิดเทอร์มินัลแล้วป้อนคำสั่งเหล่านี้

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

คีย์ pgp ส่วนใหญ่กระจายอยู่ในที่เก็บคีย์ต่าง ๆ keyserver.ubuntu.comอูบุนตูปุ่มที่เกี่ยวข้องมักจะพบใน แต่ถ้านั่นล้มเหลวคุณสามารถใช้ทางเลือก ชอบ -

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

คุณต้องแทนที่ส่วนตัวอักษรและตัวเลขด้วยคีย์เฉพาะ ตรวจสอบให้แน่ใจที่สำคัญคือคนที่คุณไว้วางใจ ที่เก็บที่มีคีย์นี้จะสามารถติดตั้งแพ็กเกจใด ๆ โดยไม่มีการเตือน

คุณจะเห็นผลลัพธ์ต่อไปนี้หากด้านบนสำเร็จ

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

จากนั้นเรียกใช้คำสั่งนี้:

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

หมายเหตุป้ายหลัง-add

จากนั้นsudo apt-get updateคุณจะไม่มีข้อความดังกล่าวหลังจากนี้


1
สวัสดี @ anwar ฉันจะได้รับกุญแจที่ไว้วางใจได้อย่างไร
มินนี่ชิ

1
@MinnieShi ที่สำคัญมีอยู่ในข้อความข้อผิดพลาดตัวเองThe following signatures were invalid: BADSIG 16126D3A3E5C1192
Kalyan Raghu

1
โปรดทราบว่าapt-key addคำสั่งควรกลับมา "ตกลง"
คอยน์

เยี่ยมมากควรเป็นคำตอบที่ยอมรับได้! ขอบคุณ
จาค็อบ

13

ฉันพบว่าเพิ่งทำ

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

ทำงานให้ฉัน


ใช้ sudo rm -rf / var / lib / apt / list / * && sudo mkdir -p / var / lib / apt / รายการเพื่อรักษาสิทธิ์ / var / lib / apt / รายการใด ๆ ที่อาจมีสิทธิ์
131

1
ไม่จำเป็นต้องสร้างpartialไดเรกทอรีย่อย sudo apt-get updateจะทำเอง
ผู้บัญชาการ Byte

9

คุณสามารถลองสคริปต์ของฉันจะได้รับกุญแจ GPG ทั้งหมดของสัญญาซื้อขายไฟฟ้าที่คุณใช้โดยอัตโนมัติ: smartupdate.sh

มันจะเปิดตัวapt-get updateจากนั้นค้นหาข้อผิดพลาด GPG ทั้งหมดและรับกุญแจสำหรับลายเซ็น GPG ที่พบ ในกรณีของคุณมันจะเปิดตัว

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

แต่เมื่อคุณเพิ่ม PPA ที่ไม่ได้ลงชื่อไม่กี่อันมันน่าเบื่อที่จะเพิ่มคีย์ GPG ด้วยตนเอง :)


6

คำสั่งต่อไปนี้แก้ไขปัญหาให้ฉันได้:

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

1
ไม่จำเป็นต้องสร้างpartialไดเรกทอรีย่อย sudo apt-get updateจะทำเอง
ผู้บัญชาการ Byte

4

ฉันได้รับข้อผิดพลาดที่คล้ายกัน แต่แทนที่จะเป็นของBADSIGฉันKEYEXPIREDสำหรับ repo 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

คำอธิบายการแก้ปัญหาได้อย่างสมบูรณ์แบบที่นี่แต่นี่คือสิ่งที่ฉันทำเพื่อแก้ปัญหา:

$ 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 -

และตอนนี้$ sudo apt-get updateจะทำงานได้อย่างสมบูรณ์แบบ!


1

เคล็ดลับนี้ (จากactionparsnip ) เหมาะกับฉัน:

ลอง:

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

พบใน:
https://answers.launchpad.net/ubuntu/+source/update-manager/+question/194077


1

นี่อาจเป็นเพราะปัญหาการแคชของพร็อกซี HTTP หากคุณมีหนึ่งในนั้นในเส้นทางเช่นฉันคุณสามารถขอให้ Apt ทำการขอให้หลีกเลี่ยงการแคชชั่วคราว:

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

-2

คุณสามารถใช้launchpad-getkeysเพื่อแก้ไขปัญหานี้ เปิดเทอร์มินัลแล้วป้อน:

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

แล้วก็

sudo apt-get update
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.