আমি কীভাবে উবুন্টুতে "অ্যাপ-গেট আপগ্রেড" কমান্ডটি পূর্বাবস্থাপন করতে বা রোলব্যাক করতে পারি?


26

আপনি apt-get upgradeযদি ফলাফলগুলি পছন্দ না করেন তবে উবুন্টুতে এমন কোনও উপায় আছে যেটি করার পরে শেষ আপগ্রেডটি রোলব্যাক করুন বা পূর্বাবস্থায় ফেরা ?


প্রচুর কাজ না করেও, এটি লাভজনক হবে না। আপনি কি আপনার / বাড়ি সংরক্ষণ করতে এবং আবার শুরু করতে পারেন? আপনি কি পছন্দ করেন না?
ব্যবহারকারী 10547

আমি এটি এখনও করি নি, তবে এটি একটি প্রোডাকশন সার্ভার এবং আমার নিশ্চিত হওয়া দরকার যে আমাদের কাস্টম পিএইচপি / মাইএসকিউএল / অ্যাপাচি 2 সেটআপের সাথে কোনও অসুবিধাগুলি নেই এবং সেখানে থাকলে দ্রুত ফিরে আসুন। আমি আপগ্রেড করতে চাই কারণ আমার মনে হয় এটি আমার অন্য সমস্যাটি সমাধান করবে।
jjclarkson

যদি আপনি ডিস্ট-আপগ্রেড না করেন, তবে ফলাফলগুলি কী পছন্দ করবে না তা আমি দেখতে পাচ্ছি না কারণ সেগুলি সম্ভবত সুরক্ষা আপডেট
LiraNuna

আপনার যদি কাস্টম ইনস্টল থাকে তবে প্যাচগুলি সংরক্ষণ এবং বর্তমান সংস্করণের বিপরীতে সেগুলি প্রয়োগ করা আপনার দায়িত্ব।
LiraNuna

2
যদি এটি কোনও সার্ভার হয় তবে উত্পাদনটি আপগ্রেড করার আগে একটি ডেভ সার্ভার ব্যবহার করে দেখুন
সোলারক

উত্তর:


5

aptitudeডেবিয়ান প্যাকেজ পরিচালনা অনুযায়ী উপলব্ধ থাকলে আপনাকে প্যাকেজের সমস্ত সংস্করণে অ্যাক্সেস দেয় ।


2.7.3 আপনাকে স্থিতিশীল হতে ডাউনগ্রেডে সহায়তা করতে পারে। 2.7.16 dpkg স্থিতি সংরক্ষণ এবং পুনরুদ্ধারের ব্যাখ্যা করে। dpkg-repack আপনাকে একটি প্যাকেজ "সঙ্কুচিত" করতে দেয়।
জোয়েটউইডল

5

আমি হার্টম্যানের ব্লগস্ট্যাটিক ব্লগ জুড়ে এসেছি: উবুন্টু লুসিডে কীভাবে একটি আপডেট পূর্বাবস্থাপন করবেন

আপত্তিজনক আপডেটটি পূর্বাবস্থায় ফেলার প্রথম পদক্ষেপটি ছিল ঠিক কী আপডেটগুলি তা খুঁজে বের করা। কিছু ফোরাম অনুসন্ধানের পরে আমি আমার আপডেটের ইতিহাসটি দেখতে পেলাম: সিনাপটিক প্যাকেজ ম্যানেজারটি খুলুন (টার্মিনালে "সুডো সিনাপটিক")। মেনু বার থেকে, ফাইল -> ইতিহাস ক্লিক করুন এবং আপনি আপনার আপডেট আপডেটের তারিখ অনুসারে দেখতে পাবেন।

দুর্ভাগ্যক্রমে আমি আজ প্রায় 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

ত্রুটি বার্তায় যেমন বলা হয়েছে, আমার এক প্যাকেজটি আপগ্রেডের ঠিক আগে-প্যাকেজটির উপর নির্ভর করেছিল, তবে আপগ্রেড এটি সরিয়ে ফেলল (এবং অ্যাপট-গেট এটি আর খুঁজে পাবে না)। ভাগ্যক্রমে, এর প্যাকেজ ফাইলটি এখনও / 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

সফল! আসলে এটি আমার সমস্যার সমাধান করেনি। কিন্তু এটি সফলভাবে প্যাকেজগুলি কিউইডি হ্রাস করেছে।


3

বেশ কয়েকটি ডেবিয়ান সার্ভারে আজ আমাকে একটি প্যাকেজ আপগ্রেডও পূর্বাবস্থায় ফিরতে হয়েছিল। এপিটিউটিটি ব্যবহার করে আমি সফলভাবে প্যাকেজগুলি শেষ সংস্করণে ফিরিয়ে দিয়েছি, যেখানে নীচের অ্যাঙ্ক কমান্ডটি খুব সহায়ক ছিল।

( নীচের কমান্ডে তারিখের স্ট্রিংটি সেই দিনের তারিখের সাথে প্রতিস্থাপন করুন যে দিন থেকে আপনি আপগ্রেডগুলি ফিরিয়ে নিতে চান )

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 install [paste output here]

আমি আশা করি এটি অন্যদের জন্যও দরকারী সময় সাশ্রয়কারী।


2

আমি প্রাসঙ্গিক ফাইল সিস্টেম এর একটি সম্পূর্ণ ব্যাকআপ গ্রহণ থেকে না বিশ্বাস করি, সরাইয়া (ঐ যে থাকে /, /bin, /lib, /sbin, /usr, /var, /etcএবং /boot(সব ফাইল সিস্টেম উপর হতে পারে) এবং আপনার বুট রেকর্ড) যাতে আপনি ফিরে পরে মেশিন পাকানো পারবেন না।


আমি (এবং সম্ভবত) খালি ধাতব ব্যাকআপ নিতে পারি, তবে আমি একটি সফ্টওয়্যার বিকল্প চেয়েছিলাম যা আমাকে দ্রুত সময়ের ফ্রেমে আপগ্রেডটিকে পূর্বাবস্থায় ফেরাতে দেয়। খালি ধাতব ব্যাকআপ থেকে পুনরুদ্ধার করতে কয়েক ঘন্টা সময় নিতে পারে।
jjclarkson

1
আপনি তাদের পূর্ববর্তী সংস্করণগুলিতে আপগ্রেড করতে যাচ্ছেন এমন সমস্ত প্যাকেজগুলির অনুলিপি নিশ্চিত করতে পারেন (তারা সম্ভবত এখনও আপনার কোষে অন্য কোথাও বসে আছেন /var) এবং যে কোনও প্রাসঙ্গিক কনফিগার ফাইল সঞ্চিত রয়েছে। এরপরে আপনি dpkgসেই সংস্করণগুলি ইনস্টল করার জন্য স্পষ্টভাবে বলে দিয়ে কোনও রোলকে জোর করে ফেরত দেওয়ার চেষ্টা করতে পারেন। আপনি যখন সাধারণ আপগ্রেডগুলি চান তখন আপনার কিছু কাজ করার দরকার হতে পারে, সুতরাং এটি আমি প্রস্তাবিত কিছু নয়।
ডেভিড স্পিললেট

ডার দিয়ে তৈরি ব্যাকআপের তুলনায় আরএসসিএন (টাইমস্ট্যাম্পিং সক্ষম) দিয়ে তৈরি একটি ব্যাকআপ বেশ দ্রুত পুনরুদ্ধার করা যায়।
জোয়েটউইডাল

2

আমি আমার লিনাক্স সার্ভারগুলিকে ভার্চুয়ালাইজড পরিবেশে চালিয়েছি এবং এ্যাপ-গেট আপগ্রেডের ঠিক আগে, বা কোনও বড় 3 য় পক্ষের আপডেট / আপগ্রেডের আগে একটি শাপশট চালাই।

তারপরে যদি কিছু ভুল হয়ে যায় তবে আমি কেবল ফিরে যাব এবং আরও তথ্য না পাওয়া পর্যন্ত জীবন চলে।

এটি যখন আমার উবুন্টু বাক্সটিকে 12.04 এ আপগ্রেড করা হয়েছিল তখন খুব হ্যান্ডেল এ এসেছিল এবং কোনওভাবেই মাইএসকিউএল আপগ্রেডের পরে সম্পূর্ণ অ-কার্যক্ষম ছিল। আমি পিছনে ঘুরলাম, উত্তর পরে পেয়েছি, আপগ্রেড পুনরায় করলাম, মাইএসকিউএল স্থির করেছি এবং জীবন ভাল ছিল।


1

আপনি চেকইনস্টল চেষ্টা করতে পারেন

আপনার পরে। / কনফিগার; আপনার প্রোগ্রামটি তৈরি করুন, চেকইনস্টল ইনস্টল করা চালাবে (বা আপনি এটি চালানোর জন্য যা কিছু বলুন) এবং দুর্দান্ত ইনস্টলওয়াচ ব্যবহার করে এই ইনস্টলেশন দ্বারা সংশোধিত প্রতিটি ফাইলের ট্র্যাক রাখুন ...

সুতরাং আপনি এটি প্রবণতাটি নিরাপদ আপগ্রেড চালানোর জন্য বলতে পারেন এবং এটি আপগ্রেড দ্বারা তৈরি প্রতিটি পরিবর্তনের উপর নজর রাখবে।


1

নেক্সেন্টা নামে একটি প্রকল্প রয়েছে যা ওবুন্টু ব্যবহারকারী স্থানের সাথে ওপেনসোলারিস কার্নেলকে একত্রিত করে। এটি সোলারিসের জেডএফএস এবং ডেবিয়ানের অ্যাপকে একীভূত করার জন্য একটি সরঞ্জাম সরবরাহ করে যাতে আপগ্রেডগুলির জন্য পূর্বাবস্থায় ফিরে আসা বোতামটি সরবরাহ করা যায়। এখানে দেখুন: http://www.nexenta.org/os/TransactionalZFSUpgrades

আরও সাধারণভাবে, আপনার যা প্রয়োজন তা হ'ল সংস্করণ ফাইল সিস্টেম। লিনাক্সের জন্য বিটিআরএফস চলছে।


1

অ্যাপট -আনডো ব্যবহার করা একটি সম্ভাব্য বিকল্প, তবে আপনি কেবল প্যাকেজ ইনস্টল ও আনইনস্টল করতে ব্যবহার করলে এটি কাজ করতে পারে। আপনি যদি ইতিমধ্যে সফটওয়্যারটিকে সাধারণভাবে আনইনস্টল করেন তবে এটি কোনও সাহায্য করবে না।

http://www.ubuntugeek.com/apt-undo-a-simple-way-of-undoing-apt-ferences.html http://lkubuntu.wordpress.com/2011/07/27/apt-undo-a -simple একমুখী অফ পূর্বাবস্থায় ফিরিয়ে আনার-কার্যক্ষম-ক্রিয়া /


0

আমি সফলভাবে কয়েকবার এটি করেছি তবে আমি এটির প্রস্তাব দেব না। এটি আমিই করেছি (যদি আমি সঠিকভাবে স্মরণ করি):

1) ডিফল্ট উবুন্টু সংগ্রহস্থলগুলিতে অন্তর্ভুক্ত নেই এমন কোনও বেসরকারী সফ্টওয়্যার সরান (এটির প্রয়োজন হতে পারে না, তবে তারা আপনাকে যেমনভাবে পেতে পারে তেমন প্রস্তাব দিয়েছি))।

2) আপনার /etc/apt/sources.list (এবং উত্স.লিস্ট.ড / *) পূর্ববর্তী সংস্করণে পরিবর্তন করুন (সমস্ত বেসরকারী সংগ্রহশালা মন্তব্য করুন)।

3) অ্যাপটি-গেট আপডেট / অ্যাপটিটিউড আপডেট

৪) প্রবণতা, ডাউন প্যাকেজগুলি (যেমন এক্স 11, লাইব্রেরি ইত্যাদি) ডাউনগ্রেড ব্যবহার করে। এটি প্রচুর ভাঙা প্যাকেজগুলি ফায়ার শুরু করবে ... সুতরাং আপনাকে প্রতিটি কেস সমাধান করতে হবে (প্রবণতার সাথে এটি কীভাবে করা যায় তা আপনার জানতে হবে)। আপনি যেভাবে এটি ডাউনগ্রেড করছেন তা হল বিবরণ প্যানেলে গিয়ে নীচে সংস্করণটি (+ টিপে) ইনস্টল করা।

5) সমস্ত সফ্টওয়্যার আপনার টার্গেট সংস্করণের অন্তর্ভুক্ত না হওয়া পর্যন্ত # 4 পুনরাবৃত্তি করুন (প্রবণতার সংস্করণ কলামে চেক করুন)।

এই কারণেই আমি এই পদ্ধতির সুপারিশ করি না:

  • এটি অনেক সময় নেয় (এটি একটি বেদনাদায়ক প্রক্রিয়া)
  • কিছু অ্যাপ্লিকেশন সঠিকভাবে কাজ না করতে পারে (কারণ তাদের এখনও সাম্প্রতিকতম কনফিগারেশন থাকতে পারে)। সেক্ষেত্রে আপনাকে "শুদ্ধ" করতে হবে এবং পুনরায় ইনস্টল করতে হবে।
  • সিস্টেম-সম্পর্কিত আপডেট রয়েছে যা ডাউনগ্রেডের পরে কাজ করবে না
  • এটি অত্যন্ত ঝুঁকিপূর্ণ যেহেতু আপনি একটি অব্যর্থ সিস্টেমের সাথে শেষ করতে পারেন

আমি একটি পরিষ্কার ইনস্টল করার পরামর্শ দিচ্ছি এবং আপনার কনফিগারেশনটি অল্প অল্প করে স্থানান্তরিত করব। এটিতে সময়ও লাগে, তবে শেষে আপনার একটি স্থিতিশীল সংস্করণ রয়েছে।

আমি এটি করার কারণটি ছিল মূলত পরীক্ষামূলক এবং হতাশার ফলস্বরূপ।


0

ডিপিকিজি :: লিনাক্স স্ন্যাপশটগুলিতে প্রাক-ইনস্টল-পিকেজ এবং জেডএফএস

যদি আপনি আপনার অপারেটিং সিস্টেমটি কোনও জেডএফএস ফাইল সিস্টেমে ইনস্টল করেন (যেমন, লিনাক্সে জেডএফএস ), আপনি কোনও ইনস্টল বা আপগ্রেড apt-getকরার zfs snapshotআগে চালনার জন্য কনফিগার করতে পারেন , যা তত্ক্ষণাত আপনার ফাইল সিস্টেমের ব্যাক আপ করবে। এটি জেডএফএস স্ন্যাপশটগুলি ব্যতীত ব্যাকআপ পদ্ধতিতে কাজ করতে পারে তবে আমি এই পরীক্ষাটি অন্যের কাছে ছেড়ে দেব।

এই পান্ডুলিপি

মত একটি ফাইল তৈরি করুন

/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আপনার অপারেটিং সিস্টেম মাউন্ট করা জেডএফএস ফাইল সিস্টেমের নামটি প্রতিস্থাপন করা উচিত। আপনি প্রথমে আপনার ওএস ইনস্টল করার সময় আপনি এই নামটি দিয়েছিলেন 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কমান্ডের জন্য।

ক্যাভ্যাট : আমি আজ প্রথমবারের মতো এটি পরীক্ষা করেছি এবং অ্যাপের অভ্যন্তরীণ কাজগুলি সম্পর্কে খুব কম জানি। এটি যদি আপনার জন্য কিছু ভেঙে বা ঝুঁকির মধ্যে পড়ে তবে আমার নীচু মন বিবেচনা করে না, দয়া করে নীচে এটি সম্পর্কে মন্তব্য করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.