मैंने गलती से प्री-रिलीज़ अपडेट (नेटी-प्रस्तावित) रिपॉजिटरी को सक्षम कर दिया और फिर सभी पैकेजों को अपग्रेड कर दिया।
मैं इसे पूर्ववत कैसे कर सकता हूं?
यहाँ परीक्षण के परिणाम से @ enzotib के निर्देशों और परीक्षण के परिणाम से मेरे निर्देशों ।
मैंने गलती से प्री-रिलीज़ अपडेट (नेटी-प्रस्तावित) रिपॉजिटरी को सक्षम कर दिया और फिर सभी पैकेजों को अपग्रेड कर दिया।
मैं इसे पूर्ववत कैसे कर सकता हूं?
यहाँ परीक्षण के परिणाम से @ enzotib के निर्देशों और परीक्षण के परिणाम से मेरे निर्देशों ।
जवाबों:
यहाँ स्थानीय रूप से स्थापित संकुल, प्रस्तावित और बैकपैक संकुल को स्थिर + अपडेट चैनल से वापस लाने का एक अधिक सामान्य तरीका है। जबकि अन्य उत्तर सही हैं और एक समान तरीके से काम करते हैं, मुझे लगता है कि यह अधिक सुरुचिपूर्ण दृष्टिकोण है।
-proposed
या -backports
अपने में /etc/apt/sources.list
और /etc/apt/sources.list.d/*
फ़ाइलें।Apt-प्राथमिकताएं फ़ाइल जोड़ें, उदाहरण के लिए /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 की यह पिनिंग उस चैनल से संकुल पर अपग्रेड बल बनाएगी -proposed
और -backports
चैनल पर <0 की प्राथमिकता और किसी अतिरिक्त पैकेज को भी हटा देगी।
अब दौड़ो
sudo apt-get update
sudo apt-get dist-upgrade
प्रस्तावित समाधान का निरीक्षण करें जो आपको देगा, और यदि आपको लगता है कि यह ठीक है, तो इसे स्वीकार करें। यदि आपको यह जांचने की आवश्यकता है कि इसे क्यों और किस संस्करण में डाउनग्रेड किया जाएगा, तो यह देखने के apt-cache policy packagename
लिए कि कौन से संस्करण उपलब्ध हैं और उपयुक्त स्थापना के लिए उम्मीदवार क्या है , इसकी जांच करें ।
/etc/apt/preferences.d/99-back-to-stable-updates
फ़ाइल को फिर से निकालें , क्योंकि अब इसकी आवश्यकता नहीं है।
5 साल से अधिक समय से अपने पदmlind
पर पिनिंग के लिए इस प्रेरणा के लिए उबंटू मंचों पर धन्यवाद - फिर भी इसने मुझे आज अच्छी तरह से मदद की।
इस पृष्ठ से पता चलता है कि एप्ट पिनिंग का उपयोग इस तथ्य का लाभ उठाकर संपूर्ण रिपॉजिटरी से डाउनग्रेड करने के लिए किया जा सकता है कि 1000 से अधिक पिन प्राथमिकताएं पैकेज डाउनग्रेड का कारण बन सकती हैं ।
एक समाधान, तब, natty-proposed
रिपॉजिटरी वालों से अलग, सभी पैकेज फ़ाइलों की डिफ़ॉल्ट प्राथमिकताओं को 1000 तक अस्थायी रूप से बढ़ाना हो सकता है:
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
}
स्क्रिप्ट चलाते समय, प्रस्तावित रेपो को अभी तक अक्षम नहीं किया जाना चाहिए था।
दोनों लिपियों पर निष्पादन योग्य बिट सेट करना याद रखें।
इस दृष्टिकोण के साथ एक समस्या यह है कि सभी डाउनग्रेड किए गए पैकेजों को मैन्युअल रूप से स्थापित किया जाएगा (वे भी जो स्वचालित रूप से स्थापित थे)।
सुरक्षित होने के लिए, बैश स्क्रिप्ट के अंत में --simulate
विकल्प जोड़ें apt-get
।
नैट्टी-प्रस्तावित से सभी पैकेजों को बदलना संभवतया आवश्यक नहीं है: वैसे भी नैट्टी-अपडेट के माध्यम से अधिकांश पैकेजों को जल्द ही उन्हीं संस्करणों में अपडेट किया जाएगा।
यदि आपके पास एक पैकेज के साथ कोई समस्या है, तो आप उस पैकेज को वापस ले सकते हैं जिसमें विधि प्रस्तुत करने (अक्षम करने के बाद) का उपयोग कर या आप उपयोग कर सकते हैं sudo aptitude install packagename/natty
। लेकिन इससे भी महत्वपूर्ण बात, आपको पैकेज के खिलाफ बग दर्ज करना चाहिए। कुछ लोग वास्तव में नेटी-प्रस्तावित का परीक्षण करते हैं, और यदि प्रतिगमन (= नई समस्याएं) होती हैं, तो उन्हें निश्चित रूप से रिपोर्ट किया जाना चाहिए। अन्यथा वे सभी ubuntu उपयोगकर्ताओं के लिए अपडेट में एंड-अप कर सकते हैं। इसलिए यदि आपके पास कोई समस्या है, तो कृपया रिपोर्ट करें।
सिनेप्टिक में आप प्रस्तावित के लिए भंडार को निष्क्रिय कर सकते हैं और अपने स्रोतों को अपडेट कर सकते हैं। तब आप देखेंगे कि अपडेट किए गए सभी पैकेज स्थानीय स्तर पर इंस्टॉल किए गए हैं (क्योंकि वे अब रिपोज में नहीं हैं)।
अब आपको उन पैकेजों को "डाउनग्रेड" करना होगा। एक-एक करके चुनें, और ऊपरी मेनू में चुना गया:
package > force version
(या नियंत्रण + ई)
एक मेनू उपलब्ध विकल्पों के साथ दिखाई देगा। मैं प्रत्येक पैकेज के लिए निम्न संस्करण संख्या चुनूंगा। यदि आप एक गलती करते हैं और सामान्य रीपो में एक नया संस्करण है, तो इसे बाद के अपडेट में हल किया जाएगा।
एक त्वरित समाधान शुद्ध-ppa कमांड का उपयोग करके porposed रिपॉजिटरी की ओर इशारा करना होगा, लेकिन यह नहीं जानते कि क्या यह उनके साथ काम करेगा, मैंने इसका उपयोग केवल बाहरी ppa के और डाउनग्रेड पैकेज को आधिकारिक uber संस्करणों में शुद्ध करने के लिए किया है। मैं आपको इस मामले में ऐसा करने के लिए नहीं उतारूंगा, शायद किसी को पता हो कि यह एक सुरक्षित तरीका है ...
मैंने https://bugs.launchpad.net/ubuntu/+source/software-properties/+bug/1810499 पर proposed
एक सरल बनाए रखा कमांड समतुल्य के साथ सभी पैकेजों को डाउनग्रेड करने के लिए एक समारोह प्रदान करने का प्रस्ताव दिया क्योंकि यहां पोस्ट्स का प्रतिनिधित्व करते प्रतीत नहीं होते हैं प्रणाली की स्थिति।ppa-purge
"प्रस्तावित" - इसे प्राप्त करें?