Диспетчер обновлений Ubuntu сохраняет ваши пакеты на последней версии, но иногда новая версия пакета может работать некорректно. Вы можете понизить версию установленного пакета и заблокировать его в определенной версии, чтобы предотвратить его обновление.
Это особенно полезно, когда вы сталкиваетесь с обновленным пакетом с регрессией — ошибкой, которая мешает нормальной работе.
Как это устроено
Ваша система обычно имеет несколько версий пакета, доступных в своих репозиториях — например, когда Ubuntu обновляет пакет, он помещает новый, обновленный пакет в специальный репозиторий обновлений. Старый пакет все еще находится в главном хранилище Ubuntu и может быть установлен с несколькими хитростями. Если вы установили более новую версию пакета из личного архива пакетов (PPA), более старые пакеты, включенные в Ubuntu, все еще находятся в репозиториях Ubuntu.
Как предупреждает нас Synaptic, это может вызвать проблемы с зависимостями пакета. Система управления программным обеспечением Ubuntu не предназначена для понижения версий пакетов, считая это неподдерживаемым приемом.
Графически — Synaptic
Упрощенный интерфейс Ubuntu Software Center не дает возможности понизить версию пакетов. Однако Synaptic, более продвинутый графический интерфейс менеджера пакетов, который Ubuntu использовал для включения, предлагает эту опцию. Чтобы графически понизить версию пакета, сначала установите приложение Synaptic.
После этого откройте диспетчер пакетов Synaptic из Dash.
Найдите пакет, в котором вы хотите установить более старую версию в Synaptic, выберите его и используйте опцию Пакет -> Принудительная версия.
Выберите версию, которую хотите установить, и нажмите «Принудительная версия». Synaptic покажет вам только версии, доступные в ваших репозиториях.
Нажмите кнопку Применить, чтобы применить ваши изменения и установить старую версию пакета, при условии, что все работает правильно.
После понижения версии пакета выберите его и используйте параметр «Пакет» -> «Заблокировать версию». Если вы этого не сделаете, Ubuntu попытается обновить установленный пакет при следующем обновлении установленных пакетов.
Терминал — apt-get
Вы можете установить конкретную версию пакета с помощью apt-get в терминале. Сначала определите доступные версии, которые вы можете установить, с помощью следующей команды
apt-cache showpkg имя_пакета
Затем запустите команду apt-get install и укажите версию пакета, который вы хотите установить.
sudo apt-get установить packagename = версия
После установки выполните следующую команду, чтобы сохранить установленную версию, не позволяя диспетчеру пакетов автоматически обновлять ее в будущем:
sudo echo «удержание пакета » | sudo dpkg –set-selections