Главная
» LINUX
»
Как безопасно понизить версию программного обеспечения в Ubuntu
Как безопасно понизить версию программного обеспечения в Ubuntu
В Ubuntu можно понизить версию пакета, управляемого APT, установив более старую версию, которая всё ещё доступна в одном из настроенных репозиториев. Проверьте список версий, просмотрите изменения зависимостей, а затем подтвердите точную версию. Этот метод применим к .debпакетам, управляемым APT; приложения Snap и Flatpak используют другие методы отката.
Подтвердите способ установки приложения.
Название приложения и название его APT-пакета могут отличаться. Если вам известна часть названия пакета, перечислите соответствующие пакеты Debian с помощью команды dpkg-query`:`.
Замените KEYWORDна отличительную часть имени. Если приложение отображается в snap listили flatpak list --appвместо этого, не используйте приведенные ниже команды APT.
Понизьте версию пакета APT из терминала.
Обновите индекс пакетов и проверьте версии. Замените PACKAGEна имя пакета:
sudo apt update
apt-cache policy PACKAGE
Используйте таблицу версий и метки источников, чтобы убедиться в наличии более старой версии в настроенном репозитории.
Прочитайте поля Installed, Candidate, и Version table. Скопируйте полностью строку старой версии, включая любые обозначения эпохи, дефисы или суффиксы ревизии. Проверьте источник, указанный рядом; используйте репозиторий, предназначенный для вашей версии Ubuntu. Версия, записанная только в папке , /var/lib/dpkg/statusизвестна как установленная, но это не означает, что APT может загрузить её сейчас. В руководстве по apt-cache описана информация о версии и политике, которую он отображает.
Предварительно просмотрите результат понижения версии. Используйте версию, точно указанную в выводе политики:
sudo apt-get -s install PACKAGE=VERSION
Эта симуляция позволяет просмотреть изменения в пакетах до того, как APT что-либо установит.
Эта -sопция имитирует транзакцию. Ознакомьтесь со всем предлагаемым изменением, включая пакеты, которые будут понижены в версии или удалены. Отмените, если APT предлагает удалить важное программное обеспечение, изменить несвязанные пакеты или перенести зависимости из другой версии Ubuntu. В руководстве APT по команде apt-get описаны имитация и установка с указанием точной версии.
Установите выбранную версию. Если предварительный просмотр вас устраивает, выполните:
sudo apt install PACKAGE=VERSION
Продолжайте только тогда, когда подтверждающая сводка APT совпадает с результатами моделирования.
Просмотрите итоговое подтверждение APT и утвердите его только в том случае, если оно соответствует плану. Не добавляйте ничего -y, чтобы можно было остановиться на запросе, если список пакетов изменился. Не добавляйте это --allow-downgradesкак стандартное исправление; это меняет способ обработки APT подтверждения понижения уровня и предназначено для особых случаев.
После завершения транзакции проверьте версию установленного пакета.
Сравните результат с выбранной вами версией, затем снова откройте приложение и проверьте, решена ли проблема. Сначала сохраните важную работу: понижение версии программных файлов не обязательно откатывает документы, базы данных или настройки, которые уже были изменены в более новой версии.
Используйте Synaptic вместо этого
Synaptic — это графический интерфейс для APT, который доступен в архиве пакетов Ubuntu, хотя он может быть не установлен по умолчанию. Установите его с помощью команды ` npm install -b` sudo apt install synaptic, откройте его и нажмите «Перезагрузить» , чтобы обновить списки пакетов. Инструкции по установке можно найти на странице справки Ubuntu по Synaptic .
Найдите нужный пакет и выберите строку с установленными пакетами.
Выберите пакет APT, который хотите откатить; доступные версии зависят от включенных вами репозиториев.
Откройте пакет и выберите «Принудительная версия» .
Откройте пакет и выберите «Принудительная версия» для выбранного пакета.
Выберите более старую версию в диалоговом окне и нажмите «Принудительная версия» . Synaptic может выбирать только версии, доступные через источники пакетов, о которых в данный момент знает APT; отображаемые названия пакетов и номера версий различаются в зависимости от системы.
Выбирайте более старую версию только в том случае, если она указана в списке доступных вам источников пакетов.
Нажмите «Применить» , просмотрите ожидающие изменения и продолжите только в том случае, если в сводке указано предполагаемое понижение уровня и отсутствуют неожиданные удаления.
Перед применением изменений в программу ознакомьтесь с сводкой о понижении версии и всеми связанными с этим изменениями в пакете.
Не позволяйте пакету обновляться сразу же.
Если вам нужно время для тестирования более старой версии, вы можете временно заблокировать доступ к пакету:
sudo apt-mark hold PACKAGE
apt-mark showhold
Блокировка предотвращает обычные автоматические действия с пакетом. Это также означает, что обновления безопасности и исправления ошибок не будут применяться к нему, пока действует блокировка, поэтому снимите блокировку, когда будете готовы к обновлению:
Если более старая версия отсутствует или вы хотите отменить откат к предыдущей версии, это может быть связано с недостатком предыдущей версии.
APT получает загружаемые версии из включенных источников пакетов; его локальный кэш загрузок является отдельным и может быть очищен. Если ваша целевая версия отсутствует в таблице версий, APT не сможет получить ее из текущих настроенных источников. Избегайте добавления репозитория для другого релиза Ubuntu только для того, чтобы получить один старый пакет, поскольку его зависимости могут не соответствовать вашей системе.
Чтобы вернуть пакет APT к текущей версии, сначала снимите все блокировки, обновите индекс пакетов, apt-cache policy PACKAGEснова проверьте, а затем запустите sudo apt install PACKAGEи просмотрите предложенную версию перед подтверждением. Для приложения Snap отдельная команда sudo snap revert SNAP_NAMEпытается восстановить его предыдущую версию; см. официальную документацию по обновлению и отмене Snap . Отмена Snap также затрагивает данные конфигурации, специфичные для версии, поэтому сначала сделайте резервную копию важных данных приложения.