Сообщения: 2391
Благодарности: 186
Источник
Как мне отменить или откатить команду «apt-get upgrade» в Ubuntu?
Есть ли способ в Ubuntu откатить или отменить последнее обновление после выполнения, apt-get upgrade если вам не нравятся результаты?
aptitude дает вам доступ ко всем версиям пакета, если они доступны в соответствии с управлением пакетами Debian .
Я наткнулся на Blogstatic Blog Хартмана: Как отменить обновление в Ubuntu Lucid
Первым шагом к отмене оскорбительного обновления было выяснить, какие именно обновления были. После поиска на некоторых форумах я нашел способ просмотреть историю обновлений: Открыть менеджер пакетов synaptic («sudo synaptic» в терминале). В строке меню выберите Файл -> История, и вы увидите все ваши обновления, отсортированные по дате.
К сожалению, сегодня я установил около 20 обновлений, и я не знал, какое из них вызвало проблему. Просматривая каждый из пакетов, перечисленных в списке «Журнал», я смог понизить несколько пакетов за раз до тех пор, пока проблема не была решена, и я не обнаружил ошибочное обновление. Сделать это:
Используйте панель поиска, чтобы найти пакет, который вы хотите понизить. Когда вы найдете то, что ищете, нажмите на пакет, чтобы выбрать его. В строке меню выберите Package -> Force Version и выберите предыдущую версию пакета из выпадающего меню. Нажмите кнопку «Применить», чтобы применить понижение рейтинга.
Я должен был сделать это сегодня в моей системе Debian. Во-первых, я определил временной диапазон, когда произошло ошибочное обновление, и извлек записи журнала, в которых указаны старые и новые номера версий обновленных пакетов:
Затем я попытался найти все еще кэшированные файлы пакетов на диске (к счастью, я не запустил autoclean):
Похоже, у меня по какой-то причине нет более старого пакета ethtool. Тем не менее, давайте продолжим принудительную установку старых пакетов:
Как говорится в сообщении об ошибке, один из моих пакетов зависел от пакета -common непосредственно перед обновлением, но обновление удалило его (и apt-get больше не может его найти). К счастью, его файл пакета все еще находится в / var / cache / apt, поэтому я могу просто добавить его в список и попробовать еще раз:
Успех! На самом деле это не решило мою проблему. Но это успешно понизило пакеты, QED.
Мне также пришлось отменить обновление пакета на нескольких серверах Debian. Я успешно вернул пакеты до последней версии с помощью aptitute, тогда как следующая команда awk была очень полезна.
( В приведенной ниже команде замените строку даты датой дня, с которого вы хотите отменить обновления )
проверьте выходные данные, чтобы убедиться, что это те пакеты и версии, которые нужно отменить. Затем используйте aptitute для понижения перечисленных пакетов:
Я надеюсь, что это также поможет сэкономить время другим.
Я считаю , что нет, кроме принимая полную резервную копию соответствующих файловых систем (те , которые содержат / , /bin , /lib , /sbin , /usr , /var , /etc и /boot (что все может быть в файловой системе) и загрузочная запись) , так что вы можете катить машину назад после этого.
Я запускаю свои Linux-серверы в виртуализированной среде и запускаю shapshot непосредственно перед обновлением apt-get или любыми крупными обновлениями / обновлениями сторонних производителей.
Тогда, если что-то пойдет не так, я просто вернусь и жизнь продолжится, пока я не смогу узнать больше информации.
Это очень помогло, когда я обновил свою версию Ubuntu до 12.04, и после обновления MySQL почему-то не работал. Я откатился назад, нашел ответ позже, перезапустил обновление, исправил MySQL, и жизнь была хорошей.
Вы можете попробовать checkinstall
После вас ./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).
Вот причина, почему я не рекомендую этот метод:
- Это занимает много времени (это болезненно)
- Некоторые приложения могут не работать должным образом (поскольку они могут иметь самую последнюю конфигурацию). В этом случае вам нужно будет «очистить» и переустановить.
- Существуют системные обновления, которые не будут работать после понижения
- Это очень рискованно, так как вы можете получить непригодную систему
Я настоятельно рекомендую выполнить чистую установку и постепенно перенести вашу конфигурацию. Это также требует времени, но в конце у вас есть стабильная версия.
Причина, по которой я это сделал, была в основном в качестве экспериментов и в результате отчаяния.
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. Если это что-то сломает для вас или повлечет за собой риски, которые мой заброшенный разум не учел, пожалуйста, прокомментируйте это ниже.
Источник
|