Есть ли способ откатить самое последнее обновление?

Это случалось со мной много раз за последние 5 лет: обновление сломало мою систему. Каждый раз, когда я сталкиваюсь с этой ситуацией, мне приходится переустанавливать всю систему, что действительно раздражает.

Есть ли способ откатить самое последнее обновление, чтобы иметь функциональную систему без переустановки? Если нет, то как лучше всего предложить эту идею в качестве приоритетной?

Я читал, что эта идея была описана в brainstorm.ubuntu.com, но кажется, что она мертва ... и форумы полны примеров обновлений, ломающих вещи, поэтому я чувствую, что с этим нужно что-то делать Эта тема. Спасибо!

69
задан 13 April 2011 в 19:52

6 ответов

В большинстве случаев, если ваша система не работает, это проблема ядра .

Просто загрузите старое ядро ​​и переустановите самые последние пакеты (особенно пакеты ядра), которые, вероятно, не обновились правильно. Несколько замечаний:

/var/log/dpkg.log

ваш друг, чтобы проверить, что список недавно обновленных / установленных пакетов

sudo apt-get -f install

может большую часть времени исправить наполовину установленные пакеты

0
ответ дан 13 April 2011 в 19:52

В основном вы можете обратиться к /var/log/apt/history.log за изменениями, внесенными apt / synaptic. Это просто немного судебно-медицинской экспертизы и много вырезок / пасты.

Вернитесь к дате, когда ваша система все еще работала нормально.

Сначала возьмите все пакеты, которые были установлены с тех пор, и соедините их в сценарий удаления. Когда скрипт завершит работу, начните заново добавлять все удаленные пакеты.

Пример случая:
logfile:

Start-Date: 2014-05-28  21:28:11
Commandline: synaptic
Install: libfglrx-amdxvba1:amd64 (13.12-3kali1, automatic), libgl1-fglrx-glx:amd64 (13.12-3kali1), glx-alternative-fglrx:amd64 (0.4.1kali1, automatic), libfglrx:amd64 (13.12-3kali1, au$
Remove: fglrx-glx-ia32:amd64 (12-6+point-3)
End-Date: 2014-05-28  21:28:27

, как вы можете видеть,

libfglrx-amdxvba1:amd64 libgl1-fglrx-glx:amd64 glx-alternative-fglrx:amd64 & libfglrx:amd64 

был установлен Synaptic. как будто libfglrx:amd64 было удалено Synaptic.

Мы пошли в обратном порядке, поэтому сначала мы удаляем вновь установленные пакеты и повторно добавляем удаленные пакеты.

Рабочая команда для этого случая может выглядеть следующим образом:

sudo apt-get remove -y libfglrx-amdxvba1:amd64 libgl1-fglrx-glx:amd64 glx-alternative-fglrx:amd64 libfglrx:amd64 && sudo apt-get install -y libfglrx:amd64

Возможно, было бы не самой лучшей идеей обходиться без переключателя -y - иметь больший контроль над процессом (чтобы избежать нарушенные зависимости). Большинство из вас не сломали бы свой палец, выполнив несколько проверок «у»

В большинстве случаев откат возможен таким образом, но если зависимости уже нарушены - вы можете столкнуться с еще большей проблемой. [ 1116]

0
ответ дан 13 April 2011 в 19:52

В synaptics вы можете по крайней мере контролировать, какие были последние обновления: File-menu, history.

(если синаптик запускается, с нарушенной системой). Так что с помощью команды apt -...-, чтобы отменить их обновление, это не должно быть слишком сложно.

Полагаю, что для командной строки есть команда history.

Возможно, вам придется удалить весь пакет и установить определенную версию. Афаик, можно установить конкретную версию, но мне никогда не нужно было это делать.

обновление: Посмотрел, как это сделать с apt:

Найти пакеты, установленные за последние 3x24h:

find /var/lib/dpkg/info/ -name \*.list -mtime -3 | sed 's#.list$##;s#.*/##' 

С помощью политики apt-cache вы видите доступные версии программа:

sudo apt-cache policy PROGRAM:
 *** 3.6.7+build3+nobinonly-0ubuntu0.10.04.1 0
        500 http://de.archive.ubuntu.com/ubuntu/ lucid-updates/main Packages
        500 http://security.ubuntu.com/ubuntu/ lucid-security/main Packages
        100 /var/lib/dpkg/status
     3.6.3+nobinonly-0ubuntu4 0

здесь 3.6.7 и 3.6.3. Теперь вы знаете, какая более ранняя версия может быть установлена ​​(часто не непосредственный предшественник):

sudo apt-get install PROGRAM=3.6.3

Затем вам нужно выполнить apt-pinning, чтобы предотвратить будущие обновления:

Создать новую файл в /etc/apt/preferences.d/ (если> = 10.4) с именем вашей программы,

Package: program
Pin: version 3.6.3*
Pin-Priority: 1000
0
ответ дан 13 April 2011 в 19:52

К сожалению, пока нет способа сделать это. Снимок / откат на уровне файловой системы является одной из особенностей будущих btrfs, но у него есть способы еще стать полноценными и стабильными для использования в качестве файловой системы по умолчанию.

0
ответ дан 13 April 2011 в 19:52

Вы можете легко установить более старую версию данного пакета (downgrade) с помощью apt или dpkg . Найти более старую версию пакета - проблема, так как они часто исчезают из пула и отражаются при обновлении.

Если вы устанавливаете пакет с установочного компакт-диска, устаревшего зеркала или из кэша, вам также нужно будет прикрепить его к старой версии, чтобы он не обновлялся до тех пор, пока вы не позволите это. Это означает, что вы должны следить за обновлениями и проверять их, пока ваша проблема не будет устранена. Это, конечно, проблема, поскольку между тем (возможно, навсегда) у вас останется нефиксированный, возможно, небезопасный пакет. Это означает, что каждый пользователь с какой-либо системной проблемой останется в каком-то случайном состоянии, пока он не сможет ее решить.

Все программное обеспечение также не совместимо с предыдущими версиями, поэтому более старая версия чего-либо может вести себя неправильно при загрузке с более новой конфигурацией или файлами данных. Очевидно, что это невозможно решить, если вы не откатите все пользовательские данные до состояния до того, как будет выполнено обновление.

Было бы здорово, если бы был способ сделать это, но это очень проблематично. Любой, кто думает, что есть согласованное решение, должен написать предложение и предложить комментарии или, что еще лучше, сделать решение концепции (код, сценарий, документ). Троллинг и нытье не конструктивны.

Поскольку нет чистого технического решения, большая часть программного обеспечения разрабатывается (и интегрируется) с менталитетом «единственный путь - вперед». Попытка управлять устаревшими версиями - пустая трата времени каждого. Найденные проблемы исправлены в более новых версиях как можно скорее. В качестве небольшого решения я хотел бы видеть архив предыдущих версий пакетов, которые хранятся где-то для временного временного решения проблемы.

Между тем вы можете сообщать об ошибках и не ожидать, что передовое программное обеспечение никогда не выйдет из строя. Исправление, найденное, должно быть в следующем обновлении. Разработчики - люди (в основном), и поэтому подвержены ошибкам. Компьютеры полны безумного разнообразия и деталей. Системы с защитным обслуживанием, использующие хорошо поддерживаемые компоненты и стабильное интегрированное распространение программного обеспечения, могут быть очень стабильными, не становясь небезопасными или не обновляемыми, несмотря на это.

0
ответ дан 13 April 2011 в 19:52

При выполнении серьезного обновления я клонирую диск с помощью Clonezilla . Запишите его на компакт-диск, подготовьте запасной (внешний) жесткий диск и следуйте инструкциям на Clonezilla LiveCD. Выберите режим partition-image, при этом используется наименьшее количество места.

Если вы считаете, что сломали свою систему (или хотите отменить какие-либо изменения), просто загрузитесь с Clonezilla LiveCD, выберите образ на своем (внешнем) жестком диске и восстановите его. Поскольку эти образы являются буквальной копией каждого бита на вашем диске, это может занять несколько часов в зависимости от скорости вашего диска и скорости соединения (соединение между данными, обычно внешним USB HDD, и компьютером).

Кстати, это называется методом резервного копирования.

0
ответ дан 13 April 2011 в 19:52

Другие вопросы по тегам:

Похожие вопросы: