【linux】wine 安装 apt软件安装包的依赖和dpkg包的覆盖——尝试覆盖共享/usr/share/doc/l它与软件包 libxxx:i386 中的其他实例不同,尚不能配置软件包 libx
错误还原:
- 现在尚不能配置软件包 libxxx:i386 3.2.1-4,因为 xxx:amd64 处于一个不同的版本(3.2.1-8)
- 正在解包 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 报告。 - 在处理时有错误发生:
/tmp/apt-dpkg-install-EgArxE/00-libgcc1_1%3a8.4.0-1ubuntu1~18.04_i386.deb - E: Sub-process /usr/bin/dpkg returned an error code (1)
- dpkg 由于出现了太多错误,处理过程被中止了
- dpkg 正在处理用于 mime-support (3.60ubuntu1) 的触发器 …在处理时有错误发生
- dpkg: 处理归档 /var/cache/apt/archives/libattr1_1:2.4.47-2_amd64.deb (–unpack)时出错:
- 尝试覆盖共享的 ‘/usr/share/doc/libattr1/changelog.Debian.gz’, 它与软件包 libattr1:amd64 中的其他实例不同
- 依赖: 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看论文它不香🏇????人间迷惑行为。
更多推荐
所有评论(0)