我正在尝试安装 bugzilla3。我之前安装了 mysql-server-5.1,但出现以下错误:
Aborting downgrade from (at least) 5.1 to 5.0.
dpkg: error processing /var/cache/apt/archives/mysql-server-5.0_5.1.30really5.0.75-0ubuntu10.2_i386.deb (--unpack):
subprocess pre-installation script returned error exit status 1
Errors were encountered while processing:
/var/cache/apt/archives/mysql-server-5.0_5.1.30really5.0.75-0ubuntu10.2_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
我进入 ubuntu irc 频道并寻求帮助,他们告诉我将 mysql 降级到 5.0,然后安装 bugzilla。
所以我去做了这件事。然而当我
sudo apt-get remove mysql-server-5.1
Bugzilla 安装配置开始,直到它再次停止抱怨 5.1 -> 5.0 降级。
于是我又去 IRC 上问了一次,他们告诉我
sudo apt-get clean
sudo apt-get update
我做到了。
但是它仍然会发生,所以我删除了 bugzilla3 包,然后尝试删除 mysql。显然它不在那里。(我检查了 mysql-server、mysql-server-5.1 和 mysql-server-5.0)。
所以我再次安装 bugzilla3,结果和上次一样,提示 mysql-server-5.1 -> 5.0 降级。现在 apt-get 报告它在那里,但它不会在启动 bugzilla 安装时将其删除。
我该如何解决?
答案1
dpkg --purge
您可以使用?强制删除 bugzilla 包
答案2
如果你查看 /var/lib/dpkg/info/mysql-server-5.0.preinst,你会看到:
show_downgrade_warning=0
for i in `ls $DATADIR/debian-*.flag 2>/dev/null`; do
found_version=`echo $i | sed 's/.*debian-\([0-9\.]\+\).flag/\1/'`
if dpkg --compare-versions "$this_version" '<<' "$found_version"; then
show_downgrade_warning=1
break;
fi
done
因此,如果您删除 /var/lib/mysql/debian-*.flag,它就会通过。
看mysql 文档如何安全地降级 mysql
答案3
只需这样做:
sudo apt-get 删除 mysql-server-5.1
sudo apt-get clean
mv /var/lib/mysql /var/lib/mysqlbak
sudo apt-get 更新
sudo apt-get 安装 mysql 服务器
mv /var/lib/mysql /var/lib/mysqlbak2
mv /var/lib/mysqlbak /var/lib/mysql
sudo /etc/init.d/mysql 重启
我知道它既不干净也不完美,但至少对我来说它是有用的。