apt-get upgrade
यदि आप परिणाम पसंद नहीं करते हैं तो क्या उबंटू में रोलबैक या अंतिम अपग्रेड को पूर्ववत करने का एक तरीका है ?
apt-get upgrade
यदि आप परिणाम पसंद नहीं करते हैं तो क्या उबंटू में रोलबैक या अंतिम अपग्रेड को पूर्ववत करने का एक तरीका है ?
जवाबों:
aptitude
यदि आप डेबियन पैकेज प्रबंधन के अनुसार उपलब्ध हैं तो आपको पैकेज के सभी संस्करणों तक पहुँच प्रदान करता है ।
मैं हार्टमैन के ब्लॉगस्टिक ब्लॉग पर आया था: उबंटू ल्यूसिड में अपडेट को कैसे पूर्ववत करें
अपमानजनक अपडेट को पूर्ववत करने का पहला चरण यह पता लगाना था कि यह वास्तव में क्या अपडेट था। कुछ मंचों को खोजने के बाद मैं अपने अपडेट इतिहास को देखने के लिए एक रास्ते पर आया: ओपन सिनैप्टिक पैकेज मैनेजर (टर्मिनल में "sudo synaptic")। मेनू बार से, फ़ाइल -> इतिहास पर क्लिक करें और आप अपने सभी अपडेट को तिथि के अनुसार क्रमबद्ध देखेंगे।
दुर्भाग्य से मैंने आज लगभग 20 अपडेट स्थापित किए हैं, और मुझे नहीं पता था कि किसने समस्या का कारण बना था। इतिहास सूची में नामित प्रत्येक पैकेज के माध्यम से खोज करके, मैं एक समय में कुछ को डाउनग्रेड करने में सक्षम था जब तक कि समस्या हल नहीं हुई थी और मैंने अपमानजनक अपडेट की पहचान की थी। यह करने के लिए:
जिस पैकेज को आप डाउनग्रेड करना चाहते हैं उसे खोजने के लिए खोज बार का उपयोग करें। एक बार जब आप पा लेते हैं, तो आप इसे चुनने के लिए पैकेज पर क्लिक करते हैं। मेनू बार से, पैकेज -> फोर्स संस्करण पर क्लिक करें और ड्रॉप डाउन मेनू से पैकेज के पिछले संस्करण का चयन करें। डाउनग्रेड लागू करने के लिए "लागू करें" बटन पर क्लिक करें।
मुझे आज अपने डेबियन सिस्टम पर यह करना था। सबसे पहले, मैंने उस समय सीमा की पहचान की, जब अपग्रेडिंग अपग्रेड हुआ था, और उन्नत एंट्रीज को पुनः प्राप्त किया और अपग्रेड किए गए पैकेजों के पुराने और नए वर्जन नंबर दिए:
$ 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 को सफलतापूर्वक डाउनग्रेड कर दिया।
मुझे भी डेबियन सर्वर के एक जोड़े पर आज एक पैकेज अपग्रेड को पूर्ववत करना पड़ा। मैंने 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]
मुझे उम्मीद है कि यह दूसरों के लिए भी एक उपयोगी समय बचाने वाला है।
मैं प्रासंगिक फ़ाइल सिस्टम की एक पूर्ण बैकअप लेने से नहीं विश्वास है, एक तरफ (उन है कि शामिल /
, /bin
, /lib
, /sbin
, /usr
, /var
, /etc
और /boot
(सभी फाइल सिस्टम पर पर हो सकता है) और अपने बूट रिकॉर्ड) ताकि आप वापस बाद में मशीन रोल कर सकते हैं।
/var
) और कोई भी प्रासंगिक कॉन्फिगर फाइल दूर संग्रहीत है। फिर आप स्पष्ट रूप dpkg
से उन संस्करणों को स्थापित करने के लिए कहकर एक रोल बैक की कोशिश कर सकते हैं । आपके पास बाद में करने के लिए कुछ काम हो सकता है जब आप चाहते हैं कि सामान्य उन्नयन हो, तो यह ऐसा कुछ नहीं है जिसे मैं सुझाऊंगा।
मैं अपने लाइनक्स सर्वरों को एक वर्चुअलाइज्ड वातावरण में चलाता हूं और एप्ट-गेट अपग्रेड, या उस मामले के लिए किसी भी तीसरे पक्ष के अपडेट / अपग्रेड से ठीक पहले शापशॉट चलाता हूं।
फिर अगर कुछ गलत हो जाता है, तो मैं बस वापस आ जाता हूं और जीवन तब तक चलता रहता है जब तक कि मुझे और अधिक जानकारी नहीं मिल जाती।
यह बहुत संभाल में आया जब मैंने अपने उबंटू बॉक्स को 12.04 में अपग्रेड किया, और उन्नयन के बाद किसी तरह MySQL पूरी तरह से गैर-कार्यात्मक था। मैं वापस लुढ़का, जवाब बाद में मिला, नवीनीकरण को फिर से शुरू करना, MySQL तय करना, और जीवन अच्छा था।
आप की कोशिश कर सकते checkinstall
आपके बाद ./configure; अपना प्रोग्राम बनाएं, CheckInstall रन इंस्टॉल करेगा (या जो भी आप इसे चलाने के लिए कहेंगे) और इस इंस्टालेशन द्वारा संशोधित हर फाइल का ट्रैक रखें, जो एक्स्टैलेंट इन्स्टॉलव्यू का उपयोग कर रहा है ...
तो शायद आप इसे एप्टीट्यूड सेफ़-अपग्रेड चलाने के लिए कह सकते हैं और यह अपग्रेड द्वारा किए गए हर संशोधन पर नज़र रखेगा।
नेक्सेंटा नामक एक प्रोजेक्ट है जो ओपनसोलारिस कर्नेल को उबंटू उपयोगकर्ताओं के साथ जोड़ता है। यह अपग्रेड के लिए एक पूर्ववत बटन प्रदान करने के लिए सोलारिस के ZFS और डेबियन के एप को एकीकृत करने के लिए एक उपकरण प्रदान करता है। यहां देखें: http://www.nexenta.org/os/TransactionalZFSUpgrades
अधिक आम तौर पर, आपको जो चाहिए वह एक संस्करण फ़ाइल सिस्टम है। लिनक्स के लिए Btrfs विकास में है।
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-कार्यों /
मैंने सफलतापूर्वक ऐसा कुछ बार किया है लेकिन मैं इसकी सिफारिश नहीं करूंगा। यह वही है जो मैंने किया (यदि मैं सही ढंग से याद करता हूं):
1) किसी भी गैर-आधिकारिक सॉफ़्टवेयर को हटा दें जो डिफ़ॉल्ट ubuntu रिपॉजिटरी में शामिल नहीं हैं (यह आवश्यक नहीं हो सकता है, लेकिन मैं सुझाव देता हूं कि वे आपके तरीके से प्राप्त कर सकते हैं)।
2) अपने /etc/apt/source.list (और source.list.d / *) को पिछले संस्करण में बदलें (सभी गैर-आधिकारिक रिपॉजिटरी पर टिप्पणी करें)।
3) एप्टीट्यूड अपडेट / एप्टीट्यूड अपडेट
4) एप्टीट्यूड, डाउनग्रेडिंग कोर पैकेज (जैसे X11, लाइब्रेरी आदि) का उपयोग करना। यह बहुत सारे टूटे हुए पैकेजों को भरना शुरू कर देगा ... इसलिए आपको प्रत्येक मामले को हल करने की आवश्यकता होगी (आपको यह जानने की आवश्यकता है कि उस योग्यता में कैसे करें)। जिस तरह से आप इसे डाउनग्रेड करते हैं वह विवरण पैनल पर जाकर और नीचे (+ दबाकर) संस्करण स्थापित करके है।
5) दोहराएं # 4 जब तक कि सभी सॉफ्टवेयर आपके लक्ष्य संस्करण (चेक स्तंभ पर संस्करण की जाँच करें) से संबंधित न हों।
यही कारण है कि मैं इस विधि की सिफारिश नहीं करता हूं:
मैं अत्यधिक रूप से एक क्लीन इन्स्टॉल करने और आपके कॉन्फ़िगरेशन को बहुत कम करने की सलाह दूंगा। इसमें समय भी लगता है, लेकिन अंत में आपके पास एक स्थिर संस्करण है।
मैंने जो किया वह कारण मुख्य रूप से प्रयोग के रूप में और हताशा के परिणामस्वरूप था।
यदि आपने अपना ऑपरेटिंग सिस्टम 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/debian
ZFS फ़ाइल सिस्टम के नाम से प्रतिस्थापित किया जाना चाहिए, जहाँ आपका ऑपरेटिंग सिस्टम आरोहित है। आपने इसे यह नाम दिया था जब आपने पहली बार अपना ओएस स्थापित किया था, और इसे 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
कमांड के लिए।
कैविएट : मैंने आज पहली बार इसका परीक्षण किया और एप्ट के आंतरिक कामकाज के बारे में बहुत कम जाना। क्या यह आपके लिए कुछ तोड़ना चाहिए या जोखिम उठा सकता है, मेरे सौतेले दिमाग पर विचार नहीं किया गया है, कृपया इसके बारे में नीचे टिप्पणी करें।