我目前正在我的 x86 桌面系统上运行 Ubuntu 12.04(有点)。
(实际上我/etc/lsb-release
说的是:
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.10
DISTRIB_CODENAME=quantal
DISTRIB_DESCRIPTION="Ubuntu quantal (development branch)"
可能是因为我在官方版本发布前不久安装了 12.04 的测试版。)
我想升级到新的 12.10(非测试版)。通常的方法是使用更新管理器——但是当我运行update-manager
或任何apt-*
命令(至少是我尝试过的命令)时,它会因分段错误而死机。当我尝试运行时,gdb 会说apt-cache
:
$ apt-cache --version
apt 0.8.16~exp12ubuntu10.3 for i386 compiled on Aug 20 2012 22:34:48
$ gdb apt-cache
[...]
(gdb) run search git
Starting program: /usr/bin/apt-cache search git
Program received signal SIGSEGV, Segmentation fault.
0xb7ee16ce in pkgCache::VerIterator::TranslatedDescription() const () from /usr/lib/i386-linux-gnu/libapt-pkg.so.4.12
(gdb) where
#0 0xb7ee16ce in pkgCache::VerIterator::TranslatedDescription() const () from /usr/lib/i386-linux-gnu/libapt-pkg.so.4.12
#1 0x08051bd1 in ?? ()
#2 0xb7eccf6e in CommandLine::DispatchArg(CommandLine::Dispatch*, bool) () from /usr/lib/i386-linux-gnu/libapt-pkg.so.4.12
#3 0x0804e833 in ?? ()
#4 0xb7c044d3 in __libc_start_main (main=0x804e520, argc=3, ubp_av=0xbffff964, init=0x805bdf0, fini=0x805be60,
rtld_fini=0xb7fed270 <_dl_fini>, stack_end=0xbffff95c) at libc-start.c:226
#5 0x0804e8f1 in ?? ()
(gdb)
该dpkg
命令不存在这个问题。
我尝试重新安装libapt-pkg4.12
(提供的包/usr/lib/i386-linux-gnu/libapt-pkg.so.4.12
),但没有帮助。
我的目标是升级到 12.10(非测试版)并让update-manager
命令apt-*
正常运行。
我可以通过 DVD 或 USB 拇指驱动器更新现有系统吗(我ubuntu-12.10-desktop-i386.iso
现在正在下载)没有删除我现有的文件?
如果没有,我可以重新安装或修复我的libapt-pkg4.12
和/或apt
包并apt-*
再次update-manager
工作吗?
如果没有,我想我剩下的选择是从头开始安装 12.10,然后从备份中恢复我的文件——如果有必要我会这么做,但我宁愿保留我的文件。(无论如何我都有备份,以防在正常升级过程中出现问题。)
更新 :
通过 Google 搜索错误信息(我之前就应该这样做),我发现错误 #970988,指的是同一例程中的崩溃TranslatedDescription()
。它被关闭为错误 #938116。据称 update-manager 1:0.156.12 已经修复了这个问题——但我已经安装了 update-manager 1:0.156.14.9,但仍然崩溃。在两个错误报告中,我都没有看到任何建议修复我系统上的问题的方法(除了重新安装)。
其中一个错误报告提到有人在安装 Skype 后遇到了这个错误,并通过卸载 Skype 解决了这个问题。我恰好在出现这个问题的时候安装了 Skype,但卸载它并没有帮助。