Без большой работы, это не стоило бы того. Можете ли вы сохранить свой / дома и начать все сначала? Что тебе не понравилось?
user10547 9.09.09
Я еще не сделал этого, но это рабочий сервер, и я должен быть уверен, что нет никаких несовместимостей с нашей пользовательской настройкой PHP / MySQL / Apache2, и быстро вернуться, если есть. Я хотел бы обновить, потому что я думаю, что это решит другую проблему, которая у меня есть.
Jjclarkson
Если вы не сделали dist-upgrade, я не вижу, какие результаты там не нравятся, так как это скорее всего обновления для системы безопасности .
LiraNuna
Если у вас есть выборочная установка, вы обязаны сохранить исправления и применить их к текущей версии.
LiraNuna
2
Если это сервер, попробуйте сервер разработки перед обновлением производственного сервера
Solarc
Ответы:
5
aptitudeдает вам доступ ко всем версиям пакета, если они доступны в соответствии с управлением пакетами Debian .
2.7.3 может помочь вам перейти на стабильную версию. 2.7.16 объясняет сохранение и восстановление состояния dpkg. dpkg-repack позволяет вам «сжать» один пакет.
Первым шагом к отмене оскорбительного обновления было выяснить, какие именно обновления были. После поиска на некоторых форумах я нашел способ просмотреть историю обновлений: Открыть менеджер пакетов synaptic («sudo synaptic» в терминале). В строке меню выберите Файл -> История, и вы увидите все ваши обновления, отсортированные по дате.
К сожалению, сегодня я установил около 20 обновлений, и я не знал, какое из них вызвало проблему. Просматривая каждый из пакетов, перечисленных в списке «Журнал», я смог понизить несколько пакетов за раз до тех пор, пока проблема не была решена, и я не обнаружил ошибочное обновление. Сделать это:
Используйте панель поиска, чтобы найти пакет, который вы хотите понизить. Когда вы найдете то, что ищете, нажмите на пакет, чтобы выбрать его. В строке меню выберите Package -> Force Version и выберите предыдущую версию пакета из выпадающего меню. Нажмите кнопку «Применить», чтобы применить понижение рейтинга.
Я ожидаю, что все здесь будут знать основы того, как искать последнее оскорбительное обновление:
Манав Брар
2
Что это было за редактирование? У вас есть еще один вопрос? Вы хотите, чтобы мы играли в угадайку?
Slhck
5
Я должен был сделать это сегодня в моей системе Debian. Во-первых, я определил временной диапазон, когда произошло ошибочное обновление, и извлек записи журнала, в которых указаны старые и новые номера версий обновленных пакетов:
Затем я попытался найти все еще кэшированные файлы пакетов на диске (к счастью, я не запустил autoclean):
$ 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.
Мне также пришлось отменить обновление пакета на нескольких серверах Debian. Я успешно вернул пакеты до последней версии с помощью aptitute, тогда как следующая команда awk была очень полезна.
( В приведенной ниже команде замените строку даты датой дня, с которого вы хотите отменить обновления )
проверьте выходные данные, чтобы убедиться, что это те пакеты и версии, которые нужно отменить. Затем используйте aptitute для понижения перечисленных пакетов:
aptitute install [paste output here]
Я надеюсь, что это также поможет сэкономить время другим.
Я считаю , что нет, кроме принимая полную резервную копию соответствующих файловых систем (те , которые содержат /, /bin, /lib, /sbin, /usr, /var, /etcи /boot(что все может быть в файловой системе) и загрузочная запись) , так что вы можете катить машину назад после этого.
Я мог (и, вероятно, буду) делать резервное копирование с нуля, но я хотел программный вариант, который позволил бы мне отменить обновление в более короткие сроки. Восстановление из резервной копии с нуля может занять несколько часов.
Jjclarkson
1
Вы можете убедиться, что у вас есть копии всех пакетов, которые вы собираетесь обновить в своих предыдущих версиях (они, вероятно, все еще находятся в вашем apt-кэше /var), и все соответствующие файлы конфигурации хранятся в хранилище. Затем вы можете попытаться выполнить откат, явно указав dpkgустановить эти версии. После этого вам может потребоваться проделать определенную работу, если вы хотите, чтобы обычные обновления происходили, поэтому я не рекомендую этого делать.
Дэвид Спиллетт
Резервная копия, созданная с помощью rsync (временная метка включена), может быть восстановлена довольно быстро по сравнению с резервной копией, созданной с помощью tar.
Joeytwiddle
2
Я запускаю свои Linux-серверы в виртуализированной среде и запускаю shapshot непосредственно перед обновлением apt-get или любыми крупными обновлениями / обновлениями сторонних производителей.
Тогда, если что-то пойдет не так, я просто вернусь и жизнь продолжится, пока я не смогу узнать больше информации.
Это очень помогло, когда я обновил свою версию Ubuntu до 12.04, и после обновления MySQL почему-то не работал. Я откатился назад, нашел ответ позже, перезапустил обновление, исправил MySQL, и жизнь была хорошей.
После вас ./configure; При создании вашей программы CheckInstall запустит make install (или как вы скажете, чтобы она запускалась) и отслеживала каждый файл, измененный этой установкой, используя отличные установочные часы ...
Поэтому, возможно, вы могли бы сказать ему, чтобы он запускал aptitude safe-upgrade, и он отслеживал бы все изменения, сделанные обновлением.
Есть проект под названием Nexenta, который объединяет ядро OpenSolaris с пользовательским пространством Ubuntu. Он предоставляет инструмент для интеграции ZFS Solaris и apt Debian, чтобы обеспечить кнопку отмены обновлений. Смотрите здесь: http://www.nexenta.org/os/TransactionalZFSUpgrades
В общем, вам нужна файловая система управления версиями. Btrfs для Linux находится в разработке.
Использование Apt-Undo - возможный вариант, но он может работать, только если вы используете его для установки и удаления пакетов. Это не поможет, если вы уже удалили программное обеспечение в обычном режиме.
Я успешно делал это несколько раз, но я не буду рекомендовать это. Вот что я сделал (если я правильно помню):
1) Удалите все неофициальные программы, которые не включены в стандартные репозитории Ubuntu (это может и не потребоваться, но я предлагаю это, поскольку они могут вам помешать).
2) Измените ваш /etc/apt/sources.list (и sources.list.d / *) на предыдущую версию (прокомментируйте все неофициальные репозитории).
3) apt-get update / aptitude update
4) Используя aptitude, обновите основные пакеты (например, X11, библиотеки и т. Д.). Он начнет запускать много сломанных пакетов ... так что вам нужно будет решить каждый случай (вам нужно знать, как это сделать в aptitude). Чтобы понизить его, перейдите на панель описания и установите версию (нажав +) внизу.
5) Повторяйте # 4, пока все программное обеспечение не будет принадлежать вашей целевой версии (проверьте столбец версии в aptitude).
Вот причина, почему я не рекомендую этот метод:
Это занимает много времени (это болезненно)
Некоторые приложения могут не работать должным образом (поскольку они могут иметь самую последнюю конфигурацию). В этом случае вам нужно будет «очистить» и переустановить.
Существуют системные обновления, которые не будут работать после понижения
Это очень рискованно, так как вы можете получить непригодную систему
Я настоятельно рекомендую выполнить чистую установку и постепенно перенести вашу конфигурацию. Это также требует времени, но в конце у вас есть стабильная версия.
Причина, по которой я это сделал, была в основном в качестве экспериментов и в результате отчаяния.
Если вы установили свою операционную систему в файловую систему ZFS (например, ZFS в Linux ), вы можете настроить 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 ...
...
Но работает ли это?
Вам лучше сделать снимок, прежде чем следовать советам по настройке случайного интернет-пользователя:
Этот снимок содержит вашу файловую систему, которая была до установки двух игр.
# 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флаг. В нашем случае, например, попробуйте
Однако имейте в виду, что это не только вернет вашу файловую систему в состояние, в котором она находилась на момент ее создания rpool/ROOT/debian@2018-08-01-230001_test, но и безвозвратно удалит все последующие снимки. Если вы подписались на этот пост, снимок rpool/ROOT/debian@apt-get_2018-08-02-033614исчезнет.
Я тестировал apt-get upgradeна Debian GNU / Linux с
Оно работает. Один снимок был создан для installкоманды, другой для upgradeкоманды.
Предостережение : сегодня я впервые проверил это и очень мало знаю о внутренней работе apt. Если это что-то сломает для вас или повлечет за собой риски, которые мой заброшенный разум не учел, пожалуйста, прокомментируйте это ниже.
Ответы:
aptitude
дает вам доступ ко всем версиям пакета, если они доступны в соответствии с управлением пакетами Debian .источник
Я наткнулся на Blogstatic Blog Хартмана: Как отменить обновление в Ubuntu Lucid
источник
Я должен был сделать это сегодня в моей системе Debian. Во-первых, я определил временной диапазон, когда произошло ошибочное обновление, и извлек записи журнала, в которых указаны старые и новые номера версий обновленных пакетов:
Затем я попытался найти все еще кэшированные файлы пакетов на диске (к счастью, я не запустил autoclean):
Похоже, у меня по какой-то причине нет более старого пакета ethtool. Тем не менее, давайте продолжим принудительную установку старых пакетов:
Как говорится в сообщении об ошибке, один из моих пакетов зависел от пакета -common непосредственно перед обновлением, но обновление удалило его (и apt-get больше не может его найти). К счастью, его файл пакета все еще находится в / var / cache / apt, поэтому я могу просто добавить его в список и попробовать еще раз:
Успех! На самом деле это не решило мою проблему. Но это успешно понизило пакеты, QED.
источник
Мне также пришлось отменить обновление пакета на нескольких серверах Debian. Я успешно вернул пакеты до последней версии с помощью aptitute, тогда как следующая команда awk была очень полезна.
( В приведенной ниже команде замените строку даты датой дня, с которого вы хотите отменить обновления )
проверьте выходные данные, чтобы убедиться, что это те пакеты и версии, которые нужно отменить. Затем используйте aptitute для понижения перечисленных пакетов:
Я надеюсь, что это также поможет сэкономить время другим.
источник
Я считаю , что нет, кроме принимая полную резервную копию соответствующих файловых систем (те , которые содержат
/
,/bin
,/lib
,/sbin
,/usr
,/var
,/etc
и/boot
(что все может быть в файловой системе) и загрузочная запись) , так что вы можете катить машину назад после этого.источник
/var
), и все соответствующие файлы конфигурации хранятся в хранилище. Затем вы можете попытаться выполнить откат, явно указавdpkg
установить эти версии. После этого вам может потребоваться проделать определенную работу, если вы хотите, чтобы обычные обновления происходили, поэтому я не рекомендую этого делать.Я запускаю свои Linux-серверы в виртуализированной среде и запускаю shapshot непосредственно перед обновлением apt-get или любыми крупными обновлениями / обновлениями сторонних производителей.
Тогда, если что-то пойдет не так, я просто вернусь и жизнь продолжится, пока я не смогу узнать больше информации.
Это очень помогло, когда я обновил свою версию Ubuntu до 12.04, и после обновления MySQL почему-то не работал. Я откатился назад, нашел ответ позже, перезапустил обновление, исправил MySQL, и жизнь была хорошей.
источник
Вы можете попробовать checkinstall
Поэтому, возможно, вы могли бы сказать ему, чтобы он запускал aptitude safe-upgrade, и он отслеживал бы все изменения, сделанные обновлением.
источник
Есть проект под названием Nexenta, который объединяет ядро OpenSolaris с пользовательским пространством Ubuntu. Он предоставляет инструмент для интеграции ZFS Solaris и apt Debian, чтобы обеспечить кнопку отмены обновлений. Смотрите здесь: http://www.nexenta.org/os/TransactionalZFSUpgrades
В общем, вам нужна файловая система управления версиями. Btrfs для Linux находится в разработке.
источник
Использование 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/sources.list (и sources.list.d / *) на предыдущую версию (прокомментируйте все неофициальные репозитории).
3) apt-get update / aptitude update
4) Используя aptitude, обновите основные пакеты (например, X11, библиотеки и т. Д.). Он начнет запускать много сломанных пакетов ... так что вам нужно будет решить каждый случай (вам нужно знать, как это сделать в aptitude). Чтобы понизить его, перейдите на панель описания и установите версию (нажав +) внизу.
5) Повторяйте # 4, пока все программное обеспечение не будет принадлежать вашей целевой версии (проверьте столбец версии в aptitude).
Вот причина, почему я не рекомендую этот метод:
Я настоятельно рекомендую выполнить чистую установку и постепенно перенести вашу конфигурацию. Это также требует времени, но в конце у вас есть стабильная версия.
Причина, по которой я это сделал, была в основном в качестве экспериментов и в результате отчаяния.
источник
DPkg :: Pre-Install-Pkgs и ZFS на снимках Linux
Если вы установили свою операционную систему в файловую систему ZFS (например, ZFS в Linux ), вы можете настроить
apt-get
ее запускzfs snapshot
до того, как она установит или обновит что-либо, что мгновенно создаст резервную копию вашей файловой системы. Он может работать с механизмами резервного копирования, отличными от снимков ZFS, но я оставлю это тестирование другим.Сценарий
Создайте файл как
с содержанием
где
rpool/ROOT/debian
должно быть заменено именем файловой системы ZFS, к которой подключена ваша операционная система. Вы дали ему это имя при первой установке ОС, и его можно найти в атрибутеNAME
с помощью командыНо работает ли это?
Вам лучше сделать снимок, прежде чем следовать советам по настройке случайного интернет-пользователя:
Вот оно В
error: fn_borked
ближайшее время вы можете вернуть свою систему в ее блаженное текущее состояние сТеперь попробуйте установить две крошечные игры, которые, вероятно, доступны в вашем репо:
Этот снимок содержит вашу файловую систему, которая была до установки двух игр.
Веселые времена для бабушки, но ты ненавидишь судоку.
После того, как было сделано несколько снимков, вы можете вернуться к любому более раннему снимку, добавив
-r
флаг. В нашем случае, например, попробуйтеОднако имейте в виду, что это не только вернет вашу файловую систему в состояние, в котором она находилась на момент ее создания
rpool/ROOT/debian@2018-08-01-230001_test
, но и безвозвратно удалит все последующие снимки. Если вы подписались на этот пост, снимокrpool/ROOT/debian@apt-get_2018-08-02-033614
исчезнет.Я тестировал
apt-get upgrade
на Debian GNU / Linux сОно работает. Один снимок был создан для
install
команды, другой дляupgrade
команды.Предостережение : сегодня я впервые проверил это и очень мало знаю о внутренней работе apt. Если это что-то сломает для вас или повлечет за собой риски, которые мой заброшенный разум не учел, пожалуйста, прокомментируйте это ниже.
источник