ฉันเปิดใช้งานพื้นที่เก็บข้อมูลอัปเดตก่อนวางจำหน่าย (เสนอโดยไม่ตั้งใจ) โดยไม่ได้ตั้งใจจากนั้นอัปเกรดแพ็คเกจทั้งหมด
ฉันจะยกเลิกสิ่งนี้ได้อย่างไร
นี่คือผลการทดสอบจากคำแนะนำของ @ enzotibและผลการทดสอบจากคำแนะนำของฉัน
ฉันเปิดใช้งานพื้นที่เก็บข้อมูลอัปเดตก่อนวางจำหน่าย (เสนอโดยไม่ตั้งใจ) โดยไม่ได้ตั้งใจจากนั้นอัปเกรดแพ็คเกจทั้งหมด
ฉันจะยกเลิกสิ่งนี้ได้อย่างไร
นี่คือผลการทดสอบจากคำแนะนำของ @ enzotibและผลการทดสอบจากคำแนะนำของฉัน
คำตอบ:
ต่อไปนี้เป็นวิธีทั่วไปมากขึ้นในการย้อนกลับจากแพคเกจที่ติดตั้งในท้องถิ่นแพคเกจที่เสนอและแบ็คแพ็คกลับไปยังช่อง + การอัปเดตที่เสถียร ในขณะที่คำตอบอื่น ๆ นั้นถูกต้องและทำงานในทำนองเดียวกันฉันคิดว่านี่เป็นวิธีที่สง่างามกว่า
-proposed
หรือ-backports
ใน/etc/apt/sources.list
และ/etc/apt/sources.list.d/*
ไฟล์ของคุณเพิ่มไฟล์ apt-preferences เช่น/etc/apt/preferences.d/99-back-to-stable-updates
มี (สำหรับprecise
ที่นี่ - แทนที่ด้วยเวอร์ชันของคุณ):
Package: *
Pin: release a=precise
Pin-Priority: 1001
Package: *
Pin: release a=precise-updates
Pin-Priority: 1001
Package: *
Pin: release a=precise-security
Pin-Priority: 1001
Package: *
Pin: release a=precise-proposed
Pin-Priority: -10
Package: *
Pin: release a=precise-backports
Pin-Priority: -10
การตรึงของ> 1000 นี้จะทำให้แรงฉลาดปรับลดในแพคเกจจากช่องดังกล่าวและจัดลำดับความสำคัญของ <0 ในที่-proposed
และ-backports
ช่องทางที่จะทำให้ลบแพคเกจใด ๆ เพิ่มเติมเกินไป
ตอนนี้ทำงาน
sudo apt-get update
sudo apt-get dist-upgrade
ตรวจสอบวิธีแก้ปัญหาที่เสนอให้จะให้คุณและถ้าคุณคิดว่ามันโอเคแล้วก็ยอมรับมัน หากคุณต้องการตรวจสอบว่าทำไมและรุ่นใดที่จะถูกลดระดับลงให้ตรวจสอบด้วยapt-cache policy packagename
เพื่อดูว่ามีรุ่นใดบ้างและสิ่งที่ apt ตัดสินใจว่าเป็นตัวเลือกสำหรับการติดตั้งหรือไม่
ลบ/etc/apt/preferences.d/99-back-to-stable-updates
ไฟล์อีกครั้งเนื่องจากไม่ต้องการอีกต่อไป
ขอบคุณmlind
บนฟอรัมของ Ubuntu สำหรับการสร้างแรงบันดาลใจในการปักหมุดในโพสต์ของเขาเมื่อกว่า 5 ปีที่แล้ว - แต่มันก็ช่วยฉันได้ค่อนข้างดีในวันนี้
หน้านี้แสดงให้เห็นว่าการตรึง Apt สามารถใช้ในการปรับลดจากพื้นที่เก็บข้อมูลทั้งหมดโดยใช้ประโยชน์จากความจริงที่ว่าลำดับความสำคัญของขาสูงมากกว่า 1000 สามารถทำให้เกิดการปรับลดแพคเกจ
จากนั้นหนึ่งโซลูชันอาจเพิ่มขึ้นชั่วคราว 1,000 ลำดับความสำคัญเริ่มต้นของไฟล์แพ็กเกจทั้งหมดยกเว้นที่มาจากที่natty-proposed
เก็บ:
apt-cache policy | awk '
/^ [0-9]+ / {
p = $1;
getline;
r = $0;
if (r !~ /a=natty-proposed/) p += 1000;
print "Package: *\nPin: " r "\nPin-priority: " p "\n"
}
' | sudo tee /etc/apt/preferences.d/downgrade-from-natty-proposed
(หมายเหตุ: วิธีนี้ไม่สามารถเพิ่มลำดับความสำคัญของไฟล์แพคเกจที่มีเขตข้อมูลการปล่อยมีเครื่องหมายจุลภาคดูคำถามนี้)
หลังจากทำสิ่งนี้แล้วapt-get --simulate upgrade
คุณสามารถใช้เพื่อทดสอบการตรวจหาการดาวน์เกรดที่ประสบความสำเร็จ หลังจากยืนยันว่ามีการตรวจพบการดาวน์เกรดที่ถูกต้องsudo apt-get upgrade
ควรเป็นสิ่งที่จำเป็นสำหรับการลดระดับ
เมื่อการดาวน์เกรดเสร็จสมบูรณ์ให้ใช้แหล่งซอฟท์แวร์เพื่อปิดการใช้งานพื้นที่เก็บข้อมูลการอัพเดทล่วงหน้า
sudo rm /etc/apt/preferences.d/downgrade-from-natty-proposed
ในที่สุดรีบูตเพื่อให้โปรแกรมที่ทำงานอยู่ทั้งหมดเป็นรุ่นที่มีการลดระดับ
ฉันไม่สามารถหาทางออกที่ง่ายกว่านี้ได้ แต่หวังว่าบางคนจะได้รับคำตอบที่ดีกว่า
สคริปต์ต่อไปนี้ที่สามารถดำเนินการลดระดับ
#!/bin/bash
# get a list of installed packages
dpkg --get-selections | awk '{ print $1 }' > all-packages
# run apt-cache policy on each of them, then elaborate with the awk script
apt-cache policy $(<all-packages) |
./get-prev-pkg-vers >old-versions
# install previous version of packages
sudo apt-get --simulate install $(< old-versions)
awk
สคริปต์ชื่อget-prev-pkg-vers
มีดังนี้
#!/usr/bin/awk -f
/^[^ ]/ {
package = $1
gsub(":", "", package)
search_next = 0
}
/^ [^ ]/ {
installed = 0
version = $1
if (search_next == 1) {
print package "=" version
search_next = 0
}
}
/^ \*\*\* [^ ]/ {
installed = 1
}
/^ [^ ]/ {
branch = $3
if (installed == 1 && branch ~ /proposed/) {
search_next = 1
}
installed = 0
}
เมื่อเรียกใช้สคริปต์repo ที่เสนอไม่ควรถูกปิดใช้งาน
จำไว้ว่าให้ตั้งบิตปฏิบัติการบนทั้งสองสคริปต์
ปัญหาเกี่ยวกับวิธีการนี้คือแพคเกจที่ถูกลดระดับทั้งหมดจะส่งผลให้มีการติดตั้งด้วยตนเอง (เช่นเดียวกับที่ติดตั้งแบบอัตโนมัติ)
เพื่อความปลอดภัยให้เพิ่ม--simulate
ตัวเลือกapt-get
ในตอนท้ายของสคริปต์ทุบตี
การย้อนกลับแพคเกจทั้งหมดจาก natty- เสนออาจไม่จำเป็น: แพคเกจส่วนใหญ่จะได้รับการปรับปรุงเป็นรุ่นเดียวกันเร็ว ๆ นี้ผ่านการปรับปรุง natty อยู่แล้ว
ในกรณีที่คุณมีปัญหากับหนึ่งในแพคเกจที่คุณสามารถย้อนกลับไปที่หนึ่งแพคเกจโดยใช้วิธีนำเสนอ Darent (หลังจากปิดการใช้งาน -proposed) sudo aptitude install packagename/natty
หรือคุณสามารถใช้ แต่ที่สำคัญคุณควรยื่นข้อผิดพลาดกับแพ็คเกจ มีเพียงไม่กี่คนที่ทดสอบการเสนอ natty จริง ๆ และหากการถดถอย (= ปัญหาใหม่) เกิดขึ้นพวกเขาควรได้รับการรายงานอย่างแน่นอน มิฉะนั้นพวกเขาอาจลงเอยด้วยการอัพเดตสำหรับผู้ใช้ Ubuntu ทุกคน ดังนั้นหากคุณมีปัญหาใด ๆ โปรดรายงาน
ใน synaptic คุณสามารถปิดการใช้งานพื้นที่เก็บข้อมูลเพื่อเสนอและอัพเดตแหล่งที่มาของคุณ จากนั้นคุณจะเห็นมากกว่าแพ็คเกจทั้งหมดที่อัปเดตปรากฏขึ้นเมื่อติดตั้งในเครื่อง (เนื่องจากไม่ได้อยู่ใน repos อีกต่อไป)
ตอนนี้คุณจะต้อง "ลดระดับ" แพ็คเกจเหล่านั้น เลือกหนึ่งต่อหนึ่งและในเมนูด้านบนเลือก:
package > force version
(หรือ Control + E)
เมนูจะปรากฏขึ้นพร้อมตัวเลือกที่ใช้งานได้ ฉันจะเลือกหมายเลขรุ่นต่ำกว่าสำหรับแต่ละแพ็คเกจ หากคุณทำผิดพลาดและมีเวอร์ชั่นที่ใหม่กว่าใน repos ปกติมันจะถูกแก้ไขในการอัพเดทในภายหลัง
วิธีแก้ปัญหาอย่างรวดเร็วคือใช้คำสั่ง purge-ppa ที่ชี้ไปยังที่เก็บ porposed แต่ไม่ทราบว่าจะใช้งานได้หรือไม่ฉันใช้เพื่อล้างแพ็คเกจ ppa และดาวน์เกรดภายนอกไปเป็นเวอร์ชั่น ubuntu อย่างเป็นทางการเท่านั้น ฉันจะไม่แนะนำให้คุณทำเช่นนี้ในกรณีนี้อาจมีใครบางคนรู้ว่ามันเป็นวิธีที่ปลอดภัยหรือไม่
ฉันเสนอให้จัดทำฟังก์ชั่นเพื่อดาวน์เกรดproposed
แพคเกจทั้งหมดด้วยคำสั่งบำรุงรักษาง่าย ๆppa-purge
ที่https://bugs.launchpad.net/ubuntu/+source/software-properties/+bug/1810499เนื่องจากโพสต์ที่นี่ยังดูเหมือนจะเป็นตัวแทนของ สถานะของระบบ
"เสนอ" - รับมันไหม