在解决这个错误之前我无法继续,我尝试删除 dpkg 以便重新下载它,但在尝试 dist-upgrade 或现在 apt-get -f install 时仍然出现此错误。
root@hayek:~# apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
[Omitted outout]
The following NEW packages will be installed:
cpp-4.6 gcc-4.6 libvlccore5 linux-headers-3.2.0-3-amd64 linux-headers-amd64
The following packages will be upgraded:
vlc vlc-data
2 upgraded, 5 newly installed, 1 to remove and 486 not upgraded.
1346 not fully installed or removed.
Need to get 0 B/19.3 MB of archives.
After this operation, 39.9 MB of additional disk space will be used.
Do you want to continue [Y/n]?
Reading changelogs... Done
(Reading database ... 204688 files and directories currently installed.)
Preparing to replace vlc 1.1.3-1squeeze6 (using .../vlc_1%3a2.0.3-dmo2_amd64.deb) ...
Unpacking replacement vlc ...
dpkg: error processing /var/cache/apt/archives/vlc_1%3a2.0.3-dmo2_amd64.deb (--unpack):
trying to overwrite '/usr/share/doc/vlc', which is also in package vlc-data 1.1.3-1squeeze6
Processing triggers for man-db ...
Errors were encountered while processing:
/var/cache/apt/archives/vlc_1%3a2.0.3-dmo2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
有人知道该怎么办吗?
答案1
更新:看来您正在安装的新 vlc 来自 deb-multimedia.org。根据deb-多媒体常见问题解答,您应该将错误报告发送至[电子邮件受保护]。
首先,您应该报告错误。 Squeeze 到 Wheezy 的升级应该不会出现错误。您可以使用 轻松完成此操作reportbug vlc
。快速浏览一下VLC 错误列表没有显示,所以请报告。 [deb-multimedia 软件包应设置为reportbug
能够自动将报告直接发送给 Christian Marillat,而不是 Debian BTS。如果没有,您可以将报告保存到文件中,然后手动邮寄]
该错误抱怨您当前vlc-data
安装了一个包含该文件的软件包/usr/share/doc/vlc
,但新vlc
软件包也包含该文件。所以存在冲突,导致 dpkg 出错。最有可能的是,喘息版本vlc-data
不再包含此文件(并且维护者未能告诉 dpkg 预计会出现这种情况)。所以修复方法是:
- 提交bug,等待维护者修复。当然,可能需要一段时间。
- 尝试使用官方包而不是 deb-multimedia 包。在您的系统更新到 Wheezy 后,可能会升级到 deb-multimedia。
- 首先尝试升级
vlc-data
,使用dpkg -i
它(查看 /var/cache/apt/archives,应该.deb
在那里)。然后升级vlc。依赖关系可能会阻止您,但如果没有,这将起作用(并且非常安全)。 - 完全删除
vlc
(和vlc-data
等)。然后,当您重新安装它们时,它将安装喘息版本。如果由于依赖关系而必须删除大量包,这可能会出现问题。 - 告诉 dpkg 您预计会出现此错误,并继续。用于
dpkg --force-overwrite -i
安装vlc
(不是vlc-data
)。这--force-overwrite
是关键的事情。这是相当安全的,特别是在这种情况下,您非常确定它只是在两个相关包之间移动的文件(毕竟是 /usr/share/doc)。
就我个人而言,当我遇到这种情况时,在报告错误后,我会使用排序(例如,vlc-data
第一个)或--force-overwrite
.
答案2
我用 解决了这个问题dpkg -r vlc
。