मैं उबंटू पर "एप-गेट अपग्रेड" कमांड को पूर्ववत या रोलबैक कैसे कर सकता हूं?


26

apt-get upgradeयदि आप परिणाम पसंद नहीं करते हैं तो क्या उबंटू में रोलबैक या अंतिम अपग्रेड को पूर्ववत करने का एक तरीका है ?


बहुत से काम नहीं, जो इसके लायक नहीं होंगे। क्या आप अपना / घर बचा सकते हैं और शुरू कर सकते हैं? आपको क्या पसंद नहीं आया?
user10547

मैंने इसे अभी तक नहीं किया है, लेकिन यह एक उत्पादन सर्वर है और मुझे यह सुनिश्चित करने की आवश्यकता है कि हमारे कस्टम PHP / MySQL / Apache2 सेटअप के साथ कोई असंगति नहीं है, और अगर वहाँ है तो जल्दी से वापस आ जाओ। मैं अपग्रेड करना चाहूंगा क्योंकि मुझे लगता है कि यह एक और समस्या है जिसे मैं कर रहा हूं।
jjclarkson

जब तक आपने डिस्ट-अपग्रेड नहीं किया, मैं नहीं देखता कि क्या परिणाम पसंद नहीं हैं, क्योंकि वे सबसे अधिक संभावना है सुरक्षा अद्यतन
लीरनुना

यदि आपके पास एक कस्टम इंस्टॉल है, तो पैच को सहेजना और उन्हें वर्तमान संस्करण के विरुद्ध लागू करना आपकी ज़िम्मेदारी है।
लीरनूना

2
यदि यह एक सर्वर है, तो उत्पादन को अपग्रेड करने से पहले एक देव सर्वर
आज़माएं

जवाबों:


5

aptitudeयदि आप डेबियन पैकेज प्रबंधन के अनुसार उपलब्ध हैं तो आपको पैकेज के सभी संस्करणों तक पहुँच प्रदान करता है ।


2.7.3 आपको स्थिर करने में मदद कर सकता है। 2.7.16 dpkg राज्य को बचाने और पुनर्स्थापित करने के बारे में बताता है। dpkg-repack आपको एकल पैकेज को "कंप्रेस" करने की अनुमति देता है।
joeytwield

5

मैं हार्टमैन के ब्लॉगस्टिक ब्लॉग पर आया था: उबंटू ल्यूसिड में अपडेट को कैसे पूर्ववत करें

अपमानजनक अपडेट को पूर्ववत करने का पहला चरण यह पता लगाना था कि यह वास्तव में क्या अपडेट था। कुछ मंचों को खोजने के बाद मैं अपने अपडेट इतिहास को देखने के लिए एक रास्ते पर आया: ओपन सिनैप्टिक पैकेज मैनेजर (टर्मिनल में "sudo synaptic")। मेनू बार से, फ़ाइल -> इतिहास पर क्लिक करें और आप अपने सभी अपडेट को तिथि के अनुसार क्रमबद्ध देखेंगे।

दुर्भाग्य से मैंने आज लगभग 20 अपडेट स्थापित किए हैं, और मुझे नहीं पता था कि किसने समस्या का कारण बना था। इतिहास सूची में नामित प्रत्येक पैकेज के माध्यम से खोज करके, मैं एक समय में कुछ को डाउनग्रेड करने में सक्षम था जब तक कि समस्या हल नहीं हुई थी और मैंने अपमानजनक अपडेट की पहचान की थी। यह करने के लिए:

जिस पैकेज को आप डाउनग्रेड करना चाहते हैं उसे खोजने के लिए खोज बार का उपयोग करें। एक बार जब आप पा लेते हैं, तो आप इसे चुनने के लिए पैकेज पर क्लिक करते हैं। मेनू बार से, पैकेज -> फोर्स संस्करण पर क्लिक करें और ड्रॉप डाउन मेनू से पैकेज के पिछले संस्करण का चयन करें। डाउनग्रेड लागू करने के लिए "लागू करें" बटन पर क्लिक करें।


1
मैं यहां सभी से उम्मीद कर रहा हूं कि अंतिम अपडाउन अपडेट को देखने के तरीके के बारे में मूल बातें जान लें:
मानव बरा

2
उस बारे में क्या संपादित किया गया था? क्या आपके पास दूसरा प्रश्न है? क्या आप चाहते हैं कि हम एक अनुमान लगाने वाला खेल खेलें?
slhck

5

मुझे आज अपने डेबियन सिस्टम पर यह करना था। सबसे पहले, मैंने उस समय सीमा की पहचान की, जब अपग्रेडिंग अपग्रेड हुआ था, और उन्नत एंट्रीज को पुनः प्राप्त किया और अपग्रेड किए गए पैकेजों के पुराने और नए वर्जन नंबर दिए:

$ awk '$1=="2016-03-20" && $3=="upgrade"' /var/log/dpkg.log
2016-03-20 16:58:22 upgrade libwebkitgtk-3.0-0:amd64 2.4.9-3 2.4.10-1
2016-03-20 16:58:24 upgrade libjavascriptcoregtk-3.0-0:amd64 2.4.9-3 2.4.10-1
2016-03-20 16:58:26 upgrade traceroute:amd64 1:2.0.22-1 1:2.1.0-1
2016-03-20 16:58:33 upgrade ethtool:amd64 1:4.2-1 1:4.5-1
2016-03-20 16:58:34 upgrade libsdl1.2debian:amd64 1.2.15+dfsg1-3 1.2.15+dfsg1-4
2016-03-20 16:58:34 upgrade subversion:amd64 1.9.3-2+b1 1.9.3-3
2016-03-20 16:58:36 upgrade libsvn1:amd64 1.9.3-2+b1 1.9.3-3
2016-03-20 16:58:56 upgrade linux-image-amd64:amd64 4.3+70 4.4+71
2016-03-20 16:58:56 upgrade linux-libc-dev:amd64 4.3.5-1 4.4.6-1
2016-03-20 16:59:03 upgrade amd64-microcode:amd64 2.20141028.1 2.20160316.1

इसके बाद, मैंने डिस्क पर स्टिल-कैश्ड पैकेज फ़ाइलों को खोजने की कोशिश की (सौभाग्य से मेरे लिए मैंने ऑटोकलेन नहीं चलाया था):

$ awk '$1=="2016-03-20" && $3=="upgrade" {gsub(/:/, "%3a", $5); split($4, f, ":"); print "/var/cache/apt/archives/" f[1] "_" $5 "_" f[2] ".deb"}' /var/log/dpkg.log | xargs -r ls -ld
ls: cannot access '/var/cache/apt/archives/ethtool_1%3a4.2-1_amd64.deb': No such file or directory
-rw-r--r-- 1 root root   28820 Dec 18  2014 /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb
-rw-r--r-- 1 root root 1978874 Dec 10 18:22 /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb
-rw-r--r-- 1 root root  185006 Mar 12 00:41 /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb
-rw-r--r-- 1 root root 1317644 Mar  3 11:30 /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb
-rw-r--r-- 1 root root 7679400 Dec 10 18:22 /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb
-rw-r--r-- 1 root root    6108 Dec 14 06:59 /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb
-rw-r--r-- 1 root root 1075506 Feb  7 21:36 /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb
-rw-r--r-- 1 root root  983174 Mar  3 11:30 /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb
-rw-r--r-- 1 root root   53376 Feb 28 18:35 /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb

ऐसा लगता है कि मेरे पास पुराने एथलूल पैकेज किसी कारण से नहीं हैं। फिर भी, चलो पुराने पैकेज फ़ाइलों को बलपूर्वक स्थापित करके चलते हैं:

$ sudo dpkg -i /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb
dpkg: warning: downgrading amd64-microcode from 2.20160316.1 to 2.20141028.1
(Reading database ... 139632 files and directories currently installed.)
Preparing to unpack .../amd64-microcode_2.20141028.1_amd64.deb ...
Unpacking amd64-microcode (2.20141028.1) over (2.20160316.1) ...
dpkg: warning: downgrading libjavascriptcoregtk-3.0-0:amd64 from 2.4.10-1 to 2.4.9-3
Preparing to unpack .../libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb ...
Unpacking libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) over (2.4.10-1) ...
dpkg: warning: downgrading libsdl1.2debian:amd64 from 1.2.15+dfsg1-4 to 1.2.15+dfsg1-3
Preparing to unpack .../libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb ...
Unpacking libsdl1.2debian:amd64 (1.2.15+dfsg1-3) over (1.2.15+dfsg1-4) ...
dpkg: warning: downgrading libsvn1:amd64 from 1.9.3-3 to 1.9.3-2+b1
Preparing to unpack .../libsvn1_1.9.3-2+b1_amd64.deb ...
Unpacking libsvn1:amd64 (1.9.3-2+b1) over (1.9.3-3) ...
Preparing to unpack .../libwebkitgtk-3.0-0_2.4.9-3_amd64.deb ...
Unpacking libwebkitgtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ...
dpkg: warning: downgrading linux-image-amd64 from 4.4+71 to 4.3+70
Preparing to unpack .../linux-image-amd64_4.3+70_amd64.deb ...
Unpacking linux-image-amd64 (4.3+70) over (4.4+71) ...
dpkg: warning: downgrading linux-libc-dev:amd64 from 4.4.6-1 to 4.3.5-1
Preparing to unpack .../linux-libc-dev_4.3.5-1_amd64.deb ...
Unpacking linux-libc-dev:amd64 (4.3.5-1) over (4.4.6-1) ...
dpkg: warning: downgrading subversion from 1.9.3-3 to 1.9.3-2+b1
Preparing to unpack .../subversion_1.9.3-2+b1_amd64.deb ...
Unpacking subversion (1.9.3-2+b1) over (1.9.3-3) ...
dpkg: warning: downgrading traceroute from 1:2.1.0-1 to 1:2.0.22-1
Preparing to unpack .../traceroute_1%3a2.0.22-1_amd64.deb ...
Unpacking traceroute (1:2.0.22-1) over (1:2.1.0-1) ...
Setting up amd64-microcode (2.20141028.1) ...
update-initramfs: deferring update (trigger activated)
amd64-microcode: microcode will be updated at next boot
Setting up libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) ...
Setting up libsdl1.2debian:amd64 (1.2.15+dfsg1-3) ...
Setting up libsvn1:amd64 (1.9.3-2+b1) ...
dpkg: dependency problems prevent configuration of libwebkitgtk-3.0-0:amd64:
 libwebkitgtk-3.0-0:amd64 depends on libwebkitgtk-3.0-common (>= 2.4.9); however:
  Package libwebkitgtk-3.0-common is not installed.

dpkg: error processing package libwebkitgtk-3.0-0:amd64 (--install):
 dependency problems - leaving unconfigured
Setting up linux-image-amd64 (4.3+70) ...
Setting up linux-libc-dev:amd64 (4.3.5-1) ...
Setting up subversion (1.9.3-2+b1) ...
Setting up traceroute (1:2.0.22-1) ...
update-alternatives: using /usr/bin/traceroute.db to provide /usr/bin/traceroute (traceroute) in auto mode
update-alternatives: using /usr/bin/lft.db to provide /usr/bin/lft (lft) in auto mode
update-alternatives: using /usr/bin/traceproto.db to provide /usr/bin/traceproto (traceproto) in auto mode
update-alternatives: using /usr/sbin/tcptraceroute.db to provide /usr/sbin/tcptraceroute (tcptraceroute) in auto mode
Processing triggers for libc-bin (2.22-3) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for initramfs-tools (0.123) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-1-amd64
Errors were encountered while processing:
 libwebkitgtk-3.0-0:amd64

जैसा कि त्रुटि संदेश में कहा गया है, मेरे पैकेज में से एक अपग्रेड से ठीक पहले एक असामान्य पैकेज पर निर्भर था, लेकिन अपग्रेड ने इसे हटा दिया (और apt-get it can find it more)। सौभाग्य से, इसकी पैकेज फ़ाइल अभी भी / var / cache / apt में है, इसलिए मैं इसे सूची में जोड़ सकता हूं और फिर से कोशिश कर सकता हूं:

$ ls -ld /var/cache/apt/archives/libwebkitgtk-3.0-common*
-rw-r--r-- 1 root root 452278 Dec 10 18:22 /var/cache/apt/archives/libwebkitgtk-3.0-common_2.4.9-3_all.deb
$ sudo dpkg -i /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-common_2.4.9-3_all.deb
(Reading database ... 139632 files and directories currently installed.)
Preparing to unpack .../amd64-microcode_2.20141028.1_amd64.deb ...
Unpacking amd64-microcode (2.20141028.1) over (2.20141028.1) ...
Preparing to unpack .../libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb ...
Unpacking libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ...
Preparing to unpack .../libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb ...
Unpacking libsdl1.2debian:amd64 (1.2.15+dfsg1-3) over (1.2.15+dfsg1-3) ...
Preparing to unpack .../libsvn1_1.9.3-2+b1_amd64.deb ...
Unpacking libsvn1:amd64 (1.9.3-2+b1) over (1.9.3-2+b1) ...
Preparing to unpack .../libwebkitgtk-3.0-0_2.4.9-3_amd64.deb ...
Unpacking libwebkitgtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ...
Preparing to unpack .../linux-image-amd64_4.3+70_amd64.deb ...
Unpacking linux-image-amd64 (4.3+70) over (4.3+70) ...
Preparing to unpack .../linux-libc-dev_4.3.5-1_amd64.deb ...
Unpacking linux-libc-dev:amd64 (4.3.5-1) over (4.3.5-1) ...
Preparing to unpack .../subversion_1.9.3-2+b1_amd64.deb ...
Unpacking subversion (1.9.3-2+b1) over (1.9.3-2+b1) ...
Preparing to unpack .../traceroute_1%3a2.0.22-1_amd64.deb ...
Unpacking traceroute (1:2.0.22-1) over (1:2.0.22-1) ...
Selecting previously unselected package libwebkitgtk-3.0-common.
Preparing to unpack .../libwebkitgtk-3.0-common_2.4.9-3_all.deb ...
Unpacking libwebkitgtk-3.0-common (2.4.9-3) ...
Setting up amd64-microcode (2.20141028.1) ...
update-initramfs: deferring update (trigger activated)
amd64-microcode: microcode will be updated at next boot
Setting up libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) ...
Setting up libsdl1.2debian:amd64 (1.2.15+dfsg1-3) ...
Setting up libsvn1:amd64 (1.9.3-2+b1) ...
Setting up linux-image-amd64 (4.3+70) ...
Setting up linux-libc-dev:amd64 (4.3.5-1) ...
Setting up subversion (1.9.3-2+b1) ...
Setting up traceroute (1:2.0.22-1) ...
update-alternatives: using /usr/bin/traceroute.db to provide /usr/bin/traceroute (traceroute) in auto mode
update-alternatives: using /usr/bin/lft.db to provide /usr/bin/lft (lft) in auto mode
update-alternatives: using /usr/bin/traceproto.db to provide /usr/bin/traceproto (traceproto) in auto mode
update-alternatives: using /usr/sbin/tcptraceroute.db to provide /usr/sbin/tcptraceroute (tcptraceroute) in auto mode
Setting up libwebkitgtk-3.0-common (2.4.9-3) ...
Setting up libwebkitgtk-3.0-0:amd64 (2.4.9-3) ...
Processing triggers for libc-bin (2.22-3) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for initramfs-tools (0.123) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-1-amd64

सफलता! वास्तव में इससे मेरी समस्या हल नहीं हुई। लेकिन इसने संकुल, QED को सफलतापूर्वक डाउनग्रेड कर दिया।


3

मुझे भी डेबियन सर्वर के एक जोड़े पर आज एक पैकेज अपग्रेड को पूर्ववत करना पड़ा। मैंने aptitute का उपयोग करके संकुल को अंतिम संस्करण में सफलतापूर्वक वापस कर दिया, जबकि निम्नलिखित awk कमांड बहुत मददगार थी।

( नीचे दिए गए आदेश में दिनांक स्ट्रिंग को उस दिन की तारीख से बदलें, जिस दिन से आप अपग्रेड को वापस करना चाहते हैं )

awk 'BEGIN{ start="0" } { if($0 ~ /Log started: 2017-06-20/) { start="1"} if ( start == "1" && $0 ~ /Unpacking.*over/) {gsub(/[\s\t)( ]+/,"",$5); printf("%s=%s ", $2 , $5)}}' /var/log/apt/term.log

यह पुष्टि करने के लिए आउटपुट की समीक्षा करें कि ये पैकेज और संस्करण वापस किए जाने हैं। तब सूचीबद्ध संकुल के डाउनग्रेड करने के लिए aptitute का उपयोग करें:

aptitute install [paste output here]

मुझे उम्मीद है कि यह दूसरों के लिए भी एक उपयोगी समय बचाने वाला है।


2

मैं प्रासंगिक फ़ाइल सिस्टम की एक पूर्ण बैकअप लेने से नहीं विश्वास है, एक तरफ (उन है कि शामिल /, /bin, /lib, /sbin, /usr, /var, /etcऔर /boot(सभी फाइल सिस्टम पर पर हो सकता है) और अपने बूट रिकॉर्ड) ताकि आप वापस बाद में मशीन रोल कर सकते हैं।


मैं (और शायद) एक नंगे धातु का बैकअप ले सकता था, लेकिन मुझे एक सॉफ्टवेयर विकल्प चाहिए था जो मुझे एक तेज समय सीमा में अपग्रेड को पूर्ववत करने दे। नंगे धातु बैकअप से बहाल करने में कई घंटे लग सकते हैं।
jjclarkson

1
आप यह सुनिश्चित कर सकते हैं कि आपके पास उन सभी पैकेजों की प्रतियां हैं, जिन्हें आप उनके पिछले संस्करणों में अपग्रेड करने वाले हैं (वे शायद अभी भी आपके apt कैश में कहीं बैठे हैं /var) और कोई भी प्रासंगिक कॉन्फिगर फाइल दूर संग्रहीत है। फिर आप स्पष्ट रूप dpkgसे उन संस्करणों को स्थापित करने के लिए कहकर एक रोल बैक की कोशिश कर सकते हैं । आपके पास बाद में करने के लिए कुछ काम हो सकता है जब आप चाहते हैं कि सामान्य उन्नयन हो, तो यह ऐसा कुछ नहीं है जिसे मैं सुझाऊंगा।
डेविड स्पिललेट

राल के साथ किए गए बैकअप की तुलना में rsync (टाइमस्टैम्पिंग इनेबल्ड) से बने बैकअप को काफी जल्दी से बहाल किया जा सकता है।
joeytwiddle

2

मैं अपने लाइनक्स सर्वरों को एक वर्चुअलाइज्ड वातावरण में चलाता हूं और एप्ट-गेट अपग्रेड, या उस मामले के लिए किसी भी तीसरे पक्ष के अपडेट / अपग्रेड से ठीक पहले शापशॉट चलाता हूं।

फिर अगर कुछ गलत हो जाता है, तो मैं बस वापस आ जाता हूं और जीवन तब तक चलता रहता है जब तक कि मुझे और अधिक जानकारी नहीं मिल जाती।

यह बहुत संभाल में आया जब मैंने अपने उबंटू बॉक्स को 12.04 में अपग्रेड किया, और उन्नयन के बाद किसी तरह MySQL पूरी तरह से गैर-कार्यात्मक था। मैं वापस लुढ़का, जवाब बाद में मिला, नवीनीकरण को फिर से शुरू करना, MySQL तय करना, और जीवन अच्छा था।


1

आप की कोशिश कर सकते checkinstall

आपके बाद ./configure; अपना प्रोग्राम बनाएं, CheckInstall रन इंस्टॉल करेगा (या जो भी आप इसे चलाने के लिए कहेंगे) और इस इंस्टालेशन द्वारा संशोधित हर फाइल का ट्रैक रखें, जो एक्स्टैलेंट इन्स्टॉलव्यू का उपयोग कर रहा है ...

तो शायद आप इसे एप्टीट्यूड सेफ़-अपग्रेड चलाने के लिए कह सकते हैं और यह अपग्रेड द्वारा किए गए हर संशोधन पर नज़र रखेगा।


1

नेक्सेंटा नामक एक प्रोजेक्ट है जो ओपनसोलारिस कर्नेल को उबंटू उपयोगकर्ताओं के साथ जोड़ता है। यह अपग्रेड के लिए एक पूर्ववत बटन प्रदान करने के लिए सोलारिस के ZFS और डेबियन के एप को एकीकृत करने के लिए एक उपकरण प्रदान करता है। यहां देखें: http://www.nexenta.org/os/TransactionalZFSUpgrades

अधिक आम तौर पर, आपको जो चाहिए वह एक संस्करण फ़ाइल सिस्टम है। लिनक्स के लिए Btrfs विकास में है।


1

Apt-Undo का उपयोग करना एक संभावित विकल्प है, लेकिन यह केवल तभी काम कर सकता है जब आप इसे स्थापित और अनइंस्टॉल पैकेज का उपयोग कर रहे हों। यदि आपने पहले ही सॉफ़्टवेयर को सामान्य तरीके से अनइंस्टॉल कर दिया है तो यह मदद नहीं करेगा।

http://www.ubuntugeek.com/apt-undo-a-simple-way-of-undoing-apt-actions.html http://lkubuntu.wordpress.com/2011/07/27/apt-undo-a आसान सरल-वे-ऑफ-द-नाश apt-कार्यों /


0

मैंने सफलतापूर्वक ऐसा कुछ बार किया है लेकिन मैं इसकी सिफारिश नहीं करूंगा। यह वही है जो मैंने किया (यदि मैं सही ढंग से याद करता हूं):

1) किसी भी गैर-आधिकारिक सॉफ़्टवेयर को हटा दें जो डिफ़ॉल्ट ubuntu रिपॉजिटरी में शामिल नहीं हैं (यह आवश्यक नहीं हो सकता है, लेकिन मैं सुझाव देता हूं कि वे आपके तरीके से प्राप्त कर सकते हैं)।

2) अपने /etc/apt/source.list (और source.list.d / *) को पिछले संस्करण में बदलें (सभी गैर-आधिकारिक रिपॉजिटरी पर टिप्पणी करें)।

3) एप्टीट्यूड अपडेट / एप्टीट्यूड अपडेट

4) एप्टीट्यूड, डाउनग्रेडिंग कोर पैकेज (जैसे X11, लाइब्रेरी आदि) का उपयोग करना। यह बहुत सारे टूटे हुए पैकेजों को भरना शुरू कर देगा ... इसलिए आपको प्रत्येक मामले को हल करने की आवश्यकता होगी (आपको यह जानने की आवश्यकता है कि उस योग्यता में कैसे करें)। जिस तरह से आप इसे डाउनग्रेड करते हैं वह विवरण पैनल पर जाकर और नीचे (+ दबाकर) संस्करण स्थापित करके है।

5) दोहराएं # 4 जब तक कि सभी सॉफ्टवेयर आपके लक्ष्य संस्करण (चेक स्तंभ पर संस्करण की जाँच करें) से संबंधित न हों।

यही कारण है कि मैं इस विधि की सिफारिश नहीं करता हूं:

  • इसमें बहुत समय लगता है (इसकी दर्दनाक प्रक्रिया)
  • कुछ एप्लिकेशन ठीक से काम नहीं कर सकते हैं (क्योंकि उनके पास अभी भी सबसे हालिया कॉन्फ़िगरेशन हो सकता है)। उस स्थिति में आपको "शुद्ध" और पुन: स्थापित करने की आवश्यकता होगी।
  • सिस्टम से संबंधित अपडेट हैं जो डाउनग्रेड के बाद काम नहीं करेंगे
  • इसका बहुत जोखिम भरा है क्योंकि आप एक अनुपयोगी प्रणाली के साथ समाप्त हो सकते हैं

मैं अत्यधिक रूप से एक क्लीन इन्स्टॉल करने और आपके कॉन्फ़िगरेशन को बहुत कम करने की सलाह दूंगा। इसमें समय भी लगता है, लेकिन अंत में आपके पास एक स्थिर संस्करण है।

मैंने जो किया वह कारण मुख्य रूप से प्रयोग के रूप में और हताशा के परिणामस्वरूप था।


0

DPkg :: लिनक्स स्नैपशॉट पर प्री-इंस्टॉल-पीकेजी और जेडएफएस

यदि आपने अपना ऑपरेटिंग सिस्टम ZFS फाइल सिस्टम (उदाहरण के लिए, लिनक्स पर ZFS ) स्थापित किया है, तो आप कुछ भी इंस्टॉल या अपग्रेड apt-getकरने से zfs snapshotपहले उसे चलाने के लिए कॉन्फ़िगर कर सकते हैं , जो आपके फाइल सिस्टम को तुरंत बैकअप देगा। यह ZFS स्नैपशॉट के अलावा अन्य बैकअप तंत्र के साथ काम कर सकता है, लेकिन मैं उस परीक्षण को दूसरों पर छोड़ दूँगा।

लिपी

एक फ़ाइल की तरह बनाएँ

/etc/apt/apt.conf.d/71backup

सामग्री के साथ

// Tell `apt-get' to take a ZFS snapshot before installing or upgrading a
// set of packages:
DPkg::Pre-Install-Pkgs {"/sbin/zfs snapshot rpool/ROOT/debian@apt-get_$(date '+%Y-%m-%d-%H%M')";};

जहाँ rpool/ROOT/debianZFS फ़ाइल सिस्टम के नाम से प्रतिस्थापित किया जाना चाहिए, जहाँ आपका ऑपरेटिंग सिस्टम आरोहित है। आपने इसे यह नाम दिया था जब आपने पहली बार अपना ओएस स्थापित किया था, और इसे NAMEकमांड के साथ विशेषता के तहत पाया जा सकता है

# zfs list -t filesystem
NAME ...
...
rpool/ROOT/debian ...
...

लेकिन क्या यह काम करता है?

आप कुछ यादृच्छिक इंटरनेट व्यक्ति के कॉन्फ़िगरेशन सलाह का पालन करने से पहले बेहतर स्नैपशॉट लेंगे:

# zfs snapshot rpool/ROOT/debian@$(date '+%Y-%m-%d-%H%M%S')_test
# zfs list -t snapshot | grep rpool
...
rpool/ROOT/debian@2018-08-01-230001_test

वो रहा। error: fn_borkedजल्द ही घटित होना चाहिए , आप अपनी प्रणाली को उसकी आनंदमय वर्तमान स्थिति के साथ वापस कर सकते हैं

# zfs rollback rpool/ROOT/debian@2018-08-01-230001_test

अब अपने रेपो में उपलब्ध होने वाले दो छोटे गेम स्थापित करके इसे आज़माएँ:

# apt-get install tanglet sudoku
...
# zfs list -t snapshot | grep apt\-get
rpool/ROOT/debian@apt-get_2018-08-02-033614

उस स्नैपशॉट में आपकी फ़ाइल प्रणाली है जैसा कि दो गेम स्थापित होने से पहले था ।

# exit
$ sudoku

दादी के लिए मजेदार समय, लेकिन आप सुडोकू से नफरत करते हैं।

$ sudo -i
# zfs rollback rpool/ROOT/debian@apt-get_2018-08-02-033614
# exit
$ sudoku
-bash: /usr/games/sudoku: No such file or directory
$ tanglet
-bash: tanglet: command not found

कई स्नैपशॉट ले लिए जाने के बाद, आप -rध्वज को जोड़कर किसी भी पहले के रोल को वापस कर सकते हैं । हमारे मामले में, उदाहरण के लिए, प्रयास करें

# zfs -r rollback rpool/ROOT/debian@2018-08-01-230001_test

हालांकि, चेतावनी दी जाती है कि न केवल यह आपके फाइल सिस्टम को उस स्थिति में लौटाएगा जो उस स्थिति में था, जब rpool/ROOT/debian@2018-08-01-230001_testइसे लिया गया था, लेकिन यह बाद के सभी स्नैपशॉट को पूरी तरह से हटा देगा। यदि आपने इस पोस्ट के साथ अनुसरण किया है, तो स्नैपशॉट rpool/ROOT/debian@apt-get_2018-08-02-033614अब चला जाएगा।

मैंने apt-get upgradeडेबियन जीएनयू / लिनक्स के साथ परीक्षण किया

# apt-get -t=oldstable install tanglet sudoku
...
# apt-get upgrade
...
# zfs list -t snapshot | grep apt\-get

यह काम करता हैं। एक स्नैपशॉट installकमांड के लिए बनाया गया था , दूसरा upgradeकमांड के लिए।

कैविएट : मैंने आज पहली बार इसका परीक्षण किया और एप्ट के आंतरिक कामकाज के बारे में बहुत कम जाना। क्या यह आपके लिए कुछ तोड़ना चाहिए या जोखिम उठा सकता है, मेरे सौतेले दिमाग पर विचार नहीं किया गया है, कृपया इसके बारे में नीचे टिप्पणी करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.