【linux】wine 安装 apt软件安装包的依赖和dpkg包的覆盖——尝试覆盖共享/usr/share/doc/l它与软件包 libxxx:i386 中的其他实例不同,尚不能配置软件包 libx

错误还原:

  1. 现在尚不能配置软件包 libxxx:i386 3.2.1-4,因为 xxx:amd64 处于一个不同的版本(3.2.1-8)
  2. 正在解包 libxdmcp6:i386 (1:1.1.2-3) …
    dpkg: 处理归档 /tmp/apt-dpkg-install-EgArxE/03-libxdmcp6_1%3a1.1.2-3_i386.deb (–unpack)时出错:
    尝试覆盖共享的 ‘/usr/share/doc/libxdmcp6/changelog.Debian.gz’, 它与软件包 libxdmcp6:i386 中的其他实例不同
    由于已经达到 MaxReports 限制,没有写入 apport 报告。
  3. 在处理时有错误发生:
    /tmp/apt-dpkg-install-EgArxE/00-libgcc1_1%3a8.4.0-1ubuntu1~18.04_i386.deb
  4. E: Sub-process /usr/bin/dpkg returned an error code (1)
  5. dpkg 由于出现了太多错误,处理过程被中止了
  6. dpkg 正在处理用于 mime-support (3.60ubuntu1) 的触发器 …在处理时有错误发生
  7. dpkg: 处理归档 /var/cache/apt/archives/libattr1_1:2.4.47-2_amd64.deb (–unpack)时出错:
  8. 尝试覆盖共享的 ‘/usr/share/doc/libattr1/changelog.Debian.gz’, 它与软件包 libattr1:amd64 中的其他实例不同
  9. 依赖: XXX 但是它将不会被安装

前言:

我是在安装wine的时候遇到的这个问题,弄了大概一天,学到挺多东西,也很庆幸是在安装wine的时候遇到这个问题,因为目前wine需要i386支持,恰巧我的系统架构是amd64的,所以即使把一些i386库给覆盖了,也不会有系统层的问题,因为i386是我的foreign-architeures,否则搞错了需要全部重装的话,对我来说确实是个大麻烦>///<

解决问题是一个重要目标,另一个大概是学到东西加深理解吧。
解决问题放在最后面,节省时间者可以直接点击目录的解决方案跳到最后。
wine的安装教程------->>>>>: 传送门

环境:

弄清语境是解决问题的第一步,是什么环境,什么内核,什么架构?既然都用linux系统了,还是做个明白人吧,不要糊糊涂涂地过生活了。(这样等你做卡巴死机和重装星人的时候,也算是死的明明白白,或者可以避免变成上述两种人)

1.查看系统内核版本:uname -a
在这里插入图片描述2. 查看cpu:lscpu
在这里插入图片描述
3.查看主架构:sudo dpkg --print-architecture 其实可以看作64位系统
4.查看拓展架构:sudo dpkg --print-foreign-architectures 可以看作32位系统
如果你用windows(这不是废话🏇),那你知道,windows下都有system32和system64,然后下面很多 xxxx.dll 库,这是为了方便兼容。linux也是这个道理。
在这里插入图片描述

出错信息:

正准备解包 .../00-libgcc1_1%3a8.4.0-1ubuntu1~18.04_i386.deb  ...
正在解包 libgcc1:i386 (1:8.4.0-1ubuntu1~18.04) ...
dpkg: 处理归档 /tmp/apt-dpkg-install-AsAJTT/00-libgcc1_1%3a8.4.0-1ubuntu1~18.04_i386.deb (--unpack)时出错:
 尝试覆盖共享的 '/usr/share/doc/libgcc1', 它与软件包 libgcc1:i386 中的其他实例不同
正准备解包 .../01-libbsd0_0.8.7-1ubuntu0.1_i386.deb  ...
正在解包 libbsd0:i386 (0.8.7-1ubuntu0.1) ...
dpkg: 处理归档 /tmp/apt-dpkg-install-AsAJTT/01-libbsd0_0.8.7-1ubuntu0.1_i386.deb (--unpack)时出错:
 尝试覆盖共享的 '/usr/share/doc/libbsd0/changelog.Debian.gz', 它与软件包 libbsd0:i386 中的其他实例不同
正准备解包 .../02-libxdmcp6_1%3a1.1.2-3_i386.deb  ...
正在解包 libxdmcp6:i386 (1:1.1.2-3) ...
dpkg: 处理归档 /tmp/apt-dpkg-install-AsAJTT/02-libxdmcp6_1%3a1.1.2-3_i386.deb (--unpack)时出错:
 尝试覆盖共享的 '/usr/share/doc/libxdmcp6/changelog.Debian.gz', 它与软件包 libxdmcp6:i386 中的其他实例不同
正准备解包 .../03-libxcb1_1.13-2~ubuntu18.04_i386.deb  ...
正在解包 libxcb1:i386 (1.13-2~ubuntu18.04) ...
dpkg: 处理归档 /tmp/apt-dpkg-install-AsAJTT/03-libxcb1_1.13-2~ubuntu18.04_i386.deb (--unpack)时出错:
 尝试覆盖共享的 '/usr/share/doc/libxcb1/changelog.Debian.gz', 它与软件包 libxcb1:i386 中的其他实例不同
由于已经达到 MaxReports 限制,没有写入 apport 报告。

小插曲:

一切要从我找到一个博客,并按照上面的操作开始,
它给了我一堆deb包,确实是wine安装包,但都是wine1.7左右的,文章是2014左右的,当时没有注意看,一般认为都是大同小异的安装流程。然后我直接运行了:

qingling@qingling-MS-7C35:~/apps/wine$ sudo dpkg -i *.deb

这下给我带来了不小的麻烦,一些lib开头的包被降级了,

dpkg: 警告: 即将把 avahi-autoipd 从 0.7-3.1ubuntu1.2 降级到 0.6.32~rc+dfsg-1ubuntu2.2
(正在读取数据库 ... 系统当前共安装有 196641 个文件和目录。)
正准备解包 avahi-autoipd_0.6.32~rc+dfsg-1ubuntu2.2_amd64.deb  ...
正在将 avahi-autoipd (0.6.32~rc+dfsg-1ubuntu2.2) 解包到 (0.7-3.1ubuntu1.2)...
dpkg: 警告: 即将把 avahi-daemon 从 0.7-3.1ubuntu1.2 降级到 0.6.32~rc+dfsg-1ubuntu2.2
正准备解包 avahi-daemon_0.6.32~rc+dfsg-1ubuntu2.2_amd64.deb  ...
正在将 avahi-daemon (0.6.32~rc+dfsg-1ubuntu2.2) 解包到 (0.7-3.1ubuntu1.2)...
dpkg: 警告: 即将把 avahi-utils 从 0.7-3.1ubuntu1.2 降级到 0.6.32~rc+dfsg-1ubuntu2.2

版本之间还有冲突:

dpkg: 处理归档 libgl1-mesa-glx_17.2.8-0ubuntu0~16.04.1_i386.deb (--install)时出错:
 软件包相互冲突 - 将不安装 libgl1-mesa-glx:i386

dpkg配置也有问题:

dpkg: 处理软件包 libasn1-8-heimdal:i386 (--install)时出错:
 现在尚不能配置软件包 libasn1-8-heimdal:i386 1.7~git20150920+dfsg-4ubuntu1.16.04.1,因为 libasn1-8-heimdal:amd64 处于一个不同的版本(7.5.0+dfsg-1)
dpkg: 处理软件包 libasn1-8-heimdal:amd64 (--install)时出错:
 现在尚不能配置软件包 libasn1-8-heimdal:amd64 7.5.0+dfsg-1,因为 libasn1-8-heimdal:i386 处于一个不同的版本(1.7~git20150920+dfsg-4ubuntu1.16.04.1)
dpkg: 处理软件包 libasound2:i386 (--install)时出错:
 现在尚不能配置软件包 libasound2:i386 1.1.0-0ubuntu1,因为 libasound2:amd64 处于一个不同的版本(1.1.3-5ubuntu0.5)

这大概就是懒得动脑,做一只小学鸡的悲惨下场吧。这样做鸡,迟早被淘汰或者吃掉,因为不喜欢动脑子,脑子也会越变越小……

1.无论是用:

sudo apt-get update   # 更新源
sudo apt-get upgrade  # 进行一次升级(这个其实存在大风险,一般建议备份后再搞)
sudo apt-get dist-upgrade  # 进行发行版升级(这个风险更大,建议备份后再搞!!)

2.还是根据linux的指示:

sudo apt --fix-broken install   # 尝试自动修复依赖关系
也可以写作:
sudo apt-get -f install 

3.还是重新安装某个包,既然它整体不符合依赖,我试着按照依赖顺序逐个击破
我先找出最前不符合依赖关系(依赖最少或者 在系统已经存在)的包,然后试着重新安装这个包:
例如:

在处理时有错误发生:
 libgl1-mesa-glx_17.2.8-0ubuntu0~16.04.1_i386.deb
 libsane_1.0.25+git20150528-1ubuntu2.16.04.1_i386.deb
 libsystemd0_229-4ubuntu21.2_i386.deb
 avahi-utils
 gstreamer1.0-plugins-base:i386
 gstreamer1.0-plugins-base:amd64
 libasn1-8-heimdal:i386
 libasn1-8-heimdal:amd64
 libasound2:i386
 libasound2:amd64
 libasound2-plugins:i386
 libasound2-plugins:amd6
 ……
 由于出现了太多错误,处理过程被中止了。
sudo apt-get install libgl1-mesa-glx_17.2.8-0ubuntu0~16.04.1_i386 --reinstall

4.或者试着卸载掉之前安装过的全部的包和不兼容的库:

sudo apt-get purge wine-stable-amd64
sudo apt-get remove liblz4-1:i386

都得到了失败的结局.全都是一堆error和黄牌警告

解决问题:

1 检查依赖:

sudo dpkg -C

在这里插入图片描述
同时用sudo apt-get install check,查看下依赖的关系:
在这里插入图片描述
可以看到 dpkg里的 包libavcodec58 依赖于 apt里的包libglib2.0-0:i386
但是

sudo apt-get install libglib2.0-0:i386 

依然报错,所以只能一个个安装依赖了,一个个修复依赖

处理方式: 直接运行下面的命令

sudo apt --fix-broken install # 低风险语句——自动下载修复依赖包并且安装


# 下面这句是高风险语句!!!!!!!如果不懂,一定要看下面的修复依赖过程和原理
# 意思是,强制安装所有的已经下载的依赖包。可能会覆盖某些文档,文件和库
sudo dpkg -i --force-overwrite /var/cache/apt/archives/*.deb  
sudo dpkg --configure -a

参考网址:Ubuntu “lib32ncurses5 : Depends: libc6-i386 (>= 2.18) but it is not going to be installed”类似问题解决办法

在这里插入图片描述

修复依赖

运行:sudo apt --fix-broken install尝试自动修复依赖关系——自动下载修复依赖包并且安装
得到下面的结果,注意绿色部分,说明sudo apt --fix-broken install已经自动帮助我们下载好了需要的deb包,只是安装出了问题。
在这里插入图片描述这些包都保存在:/var/cache/apt/archives 目录下,如果没有,你可以到下面的网址下载对应版本:
1.百度
2.boinic版本的包下载,官方,对应ubuntu18.04LST
3.ubuntu源码 tar.gz和deb包下载(这个deb包位置比较隐蔽,需要找找)
4.个人感觉最全,而且方便,版本完善,直接右上角搜索deb名就行,搜不到就大致搜索然后自己找找
在这里插入图片描述可以看到这个包,直接运行:

sudo dpkg -i libvorbis0a_1.3.5-4.2_i386.deb

可以看到有错误,错误是需要覆盖某个doc文件内容,doc又不重要,覆盖就覆盖了呗。。。
在这里插入图片描述所以强制覆盖下就行,加上--force-overwrite

sudo dpkg --force-overwrite -i libwrap0_7.6.q-27_i386.deb

你也可以直接复制全部的名字

sudo dpkg -i xxx1.deb xxx2.deb ... xxxn.deb

但是这样也许中间有问题你也察觉不到,不是特别安全,推荐使用组合:

sudo dpkg -i xxx1.deb # 尝试正常安装,并查看正常安装会出现的问题
sudo dpkg --force-overwrite -i xxx1.deb # 确认不更改重要文件,进行强制安装包

确保中间不要更改doc(document)外的其他文件,尤其不要修改amd64的任何文件,更改它的lib是很危险的,例如:libc,libgcc,尽量也不要去做任何对基础库的升级!做之前必须备份(运维人最后的底线)

如果中间出现了触发器问题
例如: 软件包 libhogweed4:i386 尚未配置
在这里插入图片描述
运行下面代码来让包自动配置触发器和一些文件:这是一个相对安全的命令

sudo dpkg --configure -a

当全部的正确的依赖都装好后,就正常运行了:
我这里是需要安装winehq:

sudo apt-get install --install-recommends winehq-stable

在这里插入图片描述查看依赖也没问题了
在这里插入图片描述
检查配置也是正常,所以没有输出了。
在这里插入图片描述
顺利打开winehq的我开心得像个孩子(骄傲.jpg)
所以说用windows看论文它不香🏇????人间迷惑行为。
在这里插入图片描述

  • 17
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值