Ubuntu에서 "apt-get upgrade"명령을 실행 취소하거나 롤백하려면 어떻게해야합니까?


26

우분투 apt-get upgrade에서 결과가 마음에 들지 않으면 마지막 업그레이드를 롤백하거나 취소하는 방법이 있습니까?


많은 일을하지 않으면 가치가 없습니다. / home을 저장하고 다시 시작할 수 있습니까? 뭘 좋아하지 않았어?
user10547

아직 수행하지는 않았지만 프로덕션 서버이므로 사용자 정의 PHP / MySQL / Apache2 설정과 호환되지 않는지 확인하고 있으면 다시 빨리 돌아와야합니다. 다른 문제를 해결할 것이라고 생각하기 때문에 업그레이드하고 싶습니다.
jjclarkson

dist-upgrade를하지 않으면 보안 업데이트 일 가능성이 크지 않은 결과가 표시되지 않습니다 .
LiraNuna

사용자 정의 설치가있는 경우 패치를 저장하고 현재 버전에 적용해야합니다.
LiraNuna

2
서버 인 경우 프로덕션 서버를 업그레이드하기 전에 개발 서버를 사용해보십시오
solarc

답변:


5

aptitude데비안 패키지 관리 에 따라 사용 가능한 경우 모든 버전의 패키지에 액세스 할 수 있습니다 .


2.7.3은 안정으로 다운 그레이드하는 데 도움이 될 수 있습니다. 2.7.16은 dpkg 상태 저장 및 복원에 대해 설명합니다. dpkg-repack을 사용하면 단일 패키지를 "압축"할 수 있습니다.
joeytwiddle

5

Hartman의 Blogstatic 블로그 : Ubuntu Lucid에서 업데이트를 취소하는 방법을 발견했습니다 .

문제가있는 업데이트를 실행 취소하기위한 첫 번째 단계는 정확히 어떤 업데이트인지 확인하는 것입니다. 일부 포럼을 검색 한 후 업데이트 내역을 볼 수있는 방법을 찾았습니다. 시냅틱 패키지 관리자 (터미널에서 "sudo synaptic")를 엽니 다. 메뉴 표시 줄에서 파일-> 히스토리를 클릭하면 모든 업데이트가 날짜별로 정렬되어 표시됩니다.

불행히도 나는 오늘 약 20 개의 업데이트를 설치했으며 어떤 업데이트가 문제의 원인인지 알지 못했습니다. History 목록에있는 각 패키지를 검색하여 문제가 해결되고 문제가되는 업데이트를 확인할 때까지 한 번에 몇 개씩 다운 그레이드 할 수있었습니다. 이것을하기 위해:

검색 창을 사용하여 다운 그레이드하려는 패키지를 찾으십시오. 원하는 것을 찾았 으면 패키지를 클릭하여 선택하십시오. 메뉴 표시 줄에서 패키지-> 버전 강제를 클릭하고 드롭 다운 메뉴에서 패키지의 이전 버전을 선택하십시오. 다운 그레이드를 적용하려면 "적용"버튼을 클릭하십시오.


1
나는 여기에있는 모든 사람이 마지막으로 문제가되는 업데이트를 찾는 방법에 대한 기본 사항을 알기를 기대합니다.
Manav Brar

2
그 내용은 무엇입니까? 다른 질문이 있습니까? 우리가 추측 게임을 하시겠습니까?
slhck 2016 년

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

어떤 이유로 든 오래된 ethtool 패키지가없는 것 같습니다. 여전히 이전 패키지 파일을 강제 설치하여 계속 진행하십시오.

$ 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

오류 메시지에서 알 수 있듯이 내 패키지 중 하나가 업그레이드 직전에 -common 패키지에 의존했지만 업그레이드로 인해 패키지가 제거되었으며 apt-get은 더 이상 찾을 수 없습니다. 운 좋게도 패키지 파일은 여전히 ​​/ 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
이전 버전으로 업그레이드하려고하는 모든 패키지의 복사본 (아마도 어딘가에 적절한 캐시에 저장되어 있음 /var)과 관련 구성 파일이 저장되어 있는지 확인할 수 있습니다. 그런 다음 dpkg해당 버전을 설치하도록 명시 적으로 지시 하여 롤백을 시도 할 수 있습니다. 정상적인 업그레이드를 원할 때 나중에해야 할 일이있을 수 있으므로 권장하지 않습니다.
David Spillett

rsync (타임 스탬프 사용)로 만든 백업은 tar로 만든 백업에 비해 매우 빠르게 복원 할 수 있습니다.
joeytwiddle

2

가상화 환경에서 Linux 서버를 실행하고 apt-get 업그레이드 직전에 shapshot을 실행하거나 해당 문제에 대한 주요 타사 업데이트 / 업그레이드를 실행합니다.

그런 다음 문제가 발생하면 간단히 되돌리고 더 많은 정보를 찾을 때까지 인생이 계속됩니다.

우분투 상자를 12.04로 업그레이드 할 때 매우 잘 처리되었으며 업그레이드 후 MySQL이 완전히 작동하지 않았습니다. 롤백하고 나중에 답을 찾았으며 업그레이드를 다시 실행하고 MySQL을 수정했으며 인생은 좋았습니다.


1

당신은 checkinstall을 시도 할 수 있습니다

./configure 후; 프로그램을 설치하면 CheckInstall은 make install (또는 실행 명령)을 실행하고 탁월한 installwatch를 사용 하여이 설치로 수정 된 모든 파일을 추적합니다 ...

따라서 적절한 안전 업그레이드를 실행하도록 지시하고 업그레이드로 인한 모든 수정 사항을 추적 할 수 있습니다.


1

OpenSolaris 커널과 Ubuntu 사용자 공간을 결합한 Nexenta라는 프로젝트가 있습니다. 업그레이드를위한 실행 취소 버튼을 제공하기 위해 Solaris의 ZFS와 Debian의 apt를 통합하는 도구를 제공합니다. 여기를 참조하십시오 : http://www.nexenta.org/os/TransactionalZFSUpgrades

보다 일반적으로 필요한 것은 버전 관리 파일 시스템입니다. Linux 용 Btrfs가 개발 중입니다.



0

나는 몇 번 성공적으로 그것을했지만 권장하지 않습니다. 이것이 내가 한 일입니다 (정확하게 기억한다면).

1) 기본 우분투 리포지토리에 포함되어 있지 않은 비공식 소프트웨어를 제거하십시오 (필요하지 않을 수도 있지만 방해가 될 수 있습니다).

2) /etc/apt/sources.list (및 sources.list.d / *)를 이전 버전으로 변경하십시오 (모든 비공식 저장소 주석 처리).

3) apt-get 업데이트 / 적성 업데이트

4) 적성을 사용하여 핵심 패키지 (X11, 라이브러리 등)를 다운 그레이드합니다. 깨진 패키지가 많이 발사되기 시작합니다. 따라서 각 경우를 해결해야합니다 (적절하게 그 방법을 알아야합니다). 다운 그레이드하는 방법은 설명 패널로 이동하여 하단에 +를 눌러 버전을 설치하는 것입니다.

5) 모든 소프트웨어가 대상 버전에 속할 때까지 # 4를 반복하십시오 (적절한 버전 열 확인).

이 방법을 권장하지 않는 이유는 다음과 같습니다.

  • 시간이 많이 걸린다 (고통스런 과정)
  • 일부 응용 프로그램은 여전히 ​​최신 구성으로되어있어 제대로 작동하지 않을 수 있습니다. 이 경우 "퍼지"하고 다시 설치해야합니다.
  • 다운 그레이드 후 작동하지 않는 시스템 관련 업데이트가 있습니다
  • 사용할 수없는 시스템으로 끝날 수 있으므로 매우 위험합니다.

새로 설치하고 구성을 조금씩 옮기는 것이 좋습니다. 또한 시간이 걸리지 만 결국에는 안정적인 버전이 있습니다.

내가 한 이유는 주로 실험과 절망의 결과였습니다.


0

DPkg :: Linux 스냅 샷의 사전 설치 Pkg 및 ZFS

ZFS 파일 시스템에 운영 체제를 설치 한 경우 (예 : Linux의 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 파일 시스템의 이름으로 바꿔야합니다. OS를 처음 설치할 때이 이름을 지정 NAME했으며, 명령 에서 attribute 아래에 있습니다.

# 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

이제 repo에서 사용 가능한 두 개의 작은 게임을 설치하여 사용해보십시오.

# 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데비안 GNU / 리눅스에서 테스트 했습니다.

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

작동합니다. install명령에 대한 스냅 샷 하나와 명령에 대한 스냅 샷 하나를 만들었습니다 upgrade.

주의 사항 : 나는 이것을 오늘 처음으로 테스트했으며 apt의 내부 작업에 대해서는 거의 알지 못합니다. 이것이 당신을 위해 무언가를 깨뜨 리거나 나의 신념이 고려되지 않은 위험을 수반한다면, 아래에 그것에 대해 의견을 말하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.