问题分为两部分:为什么我有这么多软件包显示“比档案中的版本更新”,以及如何将它们全部降级为档案中的当前版本?
背景:我运行更新程序 ( update-manager-core
) 将我的 Ubuntu 14.04 服务器升级到 16.04.1,现在我有大量软件包显示“比存档中的版本更新”。我现在在安装新软件时遇到问题,需要降级所有这些软件包。
我的内容sources.list
如下:
deb http://archive.ubuntu.com/ubuntu xenial main multiverse universe restricted
deb http://archive.ubuntu.com/ubuntu xenial-security main multiverse universe restricted
在我的系统上,可以找到比存档中的版本更新的完整软件包列表这里. 这是用 生成的apt-show-versions | grep "newer than version in archive"
。
答案1
答案2
有一个脚本用于降级标记为 的 Ubuntu 软件包newer than version in archive
。此脚本要求您安装apt-show-versions
。
sudo apt-get install apt-show-versions
脚本 :
!/bin/sh
TMP=/tmp/downgrade.$$
if [ $USER != "root" ]; then
echo "downgrade: Only root can do this"
exit 1
fi
apt-show-versions -i
apt-show-versions |
fgrep 'newer than version in archive' |
cut -d' ' -f 1 >$TMP
if [ -s $TMP ]; then
apt-show-versions -a |
fgrep -f $TMP |
cut -d' ' -f 1-3 |
grep quantal$ |
cut -d' ' -f 1-2 |
sed -e 's/ /=/' |
xargs aptitude -y install
fi
rm $TMP
来源。