Как откатить обновления программного обеспечения? [dубликат]

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

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

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

46
задан 13 April 2011 в 20:52

48 ответов

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

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

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

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

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

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

2
ответ дан 25 July 2018 в 07:06

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

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

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

3
ответ дан 25 July 2018 в 07:06

В основном вы можете обратиться к /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.

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

A рабочая команда для этого случая может выглядеть так:

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 - чтобы иметь больше контроля над процессом (чтобы избежать поломки зависимостей) , Большинство из вас не сломают палец, а проведут несколько проверок «y»

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

5
ответ дан 25 July 2018 в 07:06

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

3
ответ дан 25 July 2018 в 07:06
  • 1
    Для моментальных снимков файловой системы вместо этого вы можете использовать LVM, с ext3 или ext4. – Flimm 12 November 2012 в 18:20
  • 2
    @Flimm, теперь вы можете, хотя он работает не очень хорошо и требует, чтобы вы установили LVM при установке в первую очередь. – psusi 12 November 2012 в 22:02

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

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

/var/log/dpkg.log

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

sudo apt-get -f install

может в большинстве случаев исправить половину установленных пакетов [ ! d4]

6
ответ дан 25 July 2018 в 07:06

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

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

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

Возможно, вам нужно удалить весь пакет и установить определенную версию. Afaik, можно установить конкретную версию, но мне никогда не приходилось это делать.

update: посмотрел, как это сделать с 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/ (if> = 10.4), названный в честь вашей программы,

Package: program Pin: version 3.6.3* Pin-Priority: 1000
11
ответ дан 25 July 2018 в 07:06
  • 1
    Спасибо всем за информацию. Я не могу дождаться, когда ubuntu будет управлять zfs из коробки! – Marcelo Ruiz 16 April 2011 в 08:27
  • 2
    Извините, что это связано с zfs? Поддерживает ли zfs откаты? Или обновления ломают вашу zfs-install? Или zfs-update что-то сломало? – user unknown 16 April 2011 в 08:31
  • 3
    Что делать, если версия 1.0.2g-1ubuntu4.12 соответствует apt? Однако он отказывается принять это как номер версии. Я хочу понизить форму 1.0.2g-1ubuntu4.13 до 1.0.2g-1ubuntu4.12 – Csaba Toth 28 June 2018 в 00:05

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

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

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

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

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

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

2
ответ дан 1 August 2018 в 09:36

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

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

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

3
ответ дан 1 August 2018 в 09:36

В основном вы можете обратиться к /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.

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

A рабочая команда для этого случая может выглядеть так:

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 - чтобы иметь больше контроля над процессом (чтобы избежать поломки зависимостей) , Большинство из вас не сломают палец, а проведут несколько проверок «y»

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

5
ответ дан 1 August 2018 в 09:36

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

3
ответ дан 1 August 2018 в 09:36
  • 1
    Для моментальных снимков файловой системы вместо этого вы можете использовать LVM, с ext3 или ext4. – Flimm 12 November 2012 в 18:20
  • 2
    @Flimm, теперь вы можете, хотя он работает не очень хорошо и требует, чтобы вы установили LVM при установке в первую очередь. – psusi 12 November 2012 в 22:02

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

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

/var/log/dpkg.log

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

sudo apt-get -f install

может в большинстве случаев исправить половину установленных пакетов [ ! d4]

6
ответ дан 1 August 2018 в 09:36

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

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

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

Возможно, вам нужно удалить весь пакет и установить определенную версию. Afaik, можно установить конкретную версию, но мне никогда не приходилось это делать.

update: посмотрел, как это сделать с 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/ (if> = 10.4), названный в честь вашей программы,

Package: program Pin: version 3.6.3* Pin-Priority: 1000
11
ответ дан 1 August 2018 в 09:36
  • 1
    Спасибо всем за информацию. Я не могу дождаться, когда ubuntu будет управлять zfs из коробки! – Marcelo Ruiz 16 April 2011 в 08:27
  • 2
    Извините, что это связано с zfs? Поддерживает ли zfs откаты? Или обновления ломают вашу zfs-install? Или zfs-update что-то сломало? – user unknown 16 April 2011 в 08:31
  • 3
    Что делать, если версия 1.0.2g-1ubuntu4.12 соответствует apt? Однако он отказывается принять это как номер версии. Я хочу понизить форму 1.0.2g-1ubuntu4.13 до 1.0.2g-1ubuntu4.12 – Csaba Toth 28 June 2018 в 00:05

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

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

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

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

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

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

2
ответ дан 3 August 2018 в 05:37

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

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

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

3
ответ дан 3 August 2018 в 05:37

В основном вы можете обратиться к /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.

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

A рабочая команда для этого случая может выглядеть так:

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 - чтобы иметь больше контроля над процессом (чтобы избежать поломки зависимостей) , Большинство из вас не сломают палец, а проведут несколько проверок «y»

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

5
ответ дан 3 August 2018 в 05:37

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

3
ответ дан 3 August 2018 в 05:37
  • 1
    Для моментальных снимков файловой системы вместо этого вы можете использовать LVM, с ext3 или ext4. – Flimm 12 November 2012 в 18:20
  • 2
    @Flimm, теперь вы можете, хотя он работает не очень хорошо и требует, чтобы вы установили LVM при установке в первую очередь. – psusi 12 November 2012 в 22:02

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

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

/var/log/dpkg.log

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

sudo apt-get -f install

может в большинстве случаев исправить половину установленных пакетов [ ! d4]

6
ответ дан 3 August 2018 в 05:37

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

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

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

Возможно, вам нужно удалить весь пакет и установить определенную версию. Afaik, можно установить конкретную версию, но мне никогда не приходилось это делать.

update: посмотрел, как это сделать с 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/ (if> = 10.4), названный в честь вашей программы,

Package: program Pin: version 3.6.3* Pin-Priority: 1000
11
ответ дан 3 August 2018 в 05:37
  • 1
    Спасибо всем за информацию. Я не могу дождаться, когда ubuntu будет управлять zfs из коробки! – Marcelo Ruiz 16 April 2011 в 08:27
  • 2
    Извините, что это связано с zfs? Поддерживает ли zfs откаты? Или обновления ломают вашу zfs-install? Или zfs-update что-то сломало? – user unknown 16 April 2011 в 08:31
  • 3
    Что делать, если версия 1.0.2g-1ubuntu4.12 соответствует apt? Однако он отказывается принять это как номер версии. Я хочу понизить форму 1.0.2g-1ubuntu4.13 до 1.0.2g-1ubuntu4.12 – Csaba Toth 28 June 2018 в 00:05

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

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

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

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

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

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

2
ответ дан 4 August 2018 в 07:45

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

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

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

3
ответ дан 4 August 2018 в 07:45

В основном вы можете обратиться к /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.

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

A рабочая команда для этого случая может выглядеть так:

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 - чтобы иметь больше контроля над процессом (чтобы избежать поломки зависимостей) , Большинство из вас не сломают палец, а проведут несколько проверок «y»

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

5
ответ дан 4 August 2018 в 07:45

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

3
ответ дан 4 August 2018 в 07:45
  • 1
    Для моментальных снимков файловой системы вместо этого вы можете использовать LVM, с ext3 или ext4. – Flimm 12 November 2012 в 18:20
  • 2
    @Flimm, теперь вы можете, хотя он работает не очень хорошо и требует, чтобы вы установили LVM при установке в первую очередь. – psusi 12 November 2012 в 22:02

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

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

/var/log/dpkg.log

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

sudo apt-get -f install

может в большинстве случаев исправить половину установленных пакетов [ ! d4]

6
ответ дан 4 August 2018 в 07:45

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

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

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

Возможно, вам нужно удалить весь пакет и установить определенную версию. Afaik, можно установить конкретную версию, но мне никогда не приходилось это делать.

update: посмотрел, как это сделать с 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/ (if> = 10.4), названный в честь вашей программы,

Package: program Pin: version 3.6.3* Pin-Priority: 1000
11
ответ дан 4 August 2018 в 07:45
  • 1
    Спасибо всем за информацию. Я не могу дождаться, когда ubuntu будет управлять zfs из коробки! – Marcelo Ruiz 16 April 2011 в 08:27
  • 2
    Извините, что это связано с zfs? Поддерживает ли zfs откаты? Или обновления ломают вашу zfs-install? Или zfs-update что-то сломало? – user unknown 16 April 2011 в 08:31
  • 3
    Что делать, если версия 1.0.2g-1ubuntu4.12 соответствует apt? Однако он отказывается принять это как номер версии. Я хочу понизить форму 1.0.2g-1ubuntu4.13 до 1.0.2g-1ubuntu4.12 – Csaba Toth 28 June 2018 в 00:05

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

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

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

Возможно, вам нужно удалить весь пакет и установить определенную версию. Afaik, можно установить конкретную версию, но мне никогда не приходилось это делать.

update: посмотрел, как это сделать с apt:

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

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

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

   sudo apt-cache policy ПРОГРАММА: *** 3.6.7 + build3 + nobinonly-0ubuntu0.10.04.1 0 500 http://de.archive.ubuntu.com/ubuntu/ lucid-updates / main Пакеты 500 http  : //security.ubuntu.com/ubuntu/ lucid-security / main Пакеты 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/ (if> = 10.4), названный в честь вашей программы,

  Пакет: программа Pin: версия 3.6.3 * Pin-Priority: 1000  
11
ответ дан 5 August 2018 в 15:02

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

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

  /var/log/dpkg.log  

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

  sudo apt-get -f install  

чаще всего фиксирует половину установленных пакетов

6
ответ дан 5 August 2018 в 15:02

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

3
ответ дан 5 August 2018 в 15:02

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

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

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

3
ответ дан 5 August 2018 в 15:02

В основном вы можете обратиться к /var/log/apt/history.log за изменениями, выполненными apt / synaptic.

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

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

Пример: logfile:

  Дата начала: 2014-05-28 21:28  : 11 Commandline: synaptic Установка: 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 $ Удалить: fglrx-glx-ia32: amd64 (12-6 + point-3) Дата окончания: 2014-05-28 21:28:27  

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

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

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

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

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

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

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

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

5
ответ дан 5 August 2018 в 15:02

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

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

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

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

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

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

2
ответ дан 5 August 2018 в 15:02

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

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