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

本文详细记录了解决Ubuntu系统中因软件包依赖冲突导致的安装失败问题的过程,包括使用dpkg和apt命令修复错误,以及如何正确处理依赖关系。

错误还原:

  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  
<think>我们在处理用户的问题:在银河麒麟系统中使用`dpkg-i`安装软件包时出现“不被允许的操作”报错。根据引用的内容,我们可以提取一些相关信息:引用[2]中提到在银河麒麟系统上安装软件时出现了问题,并且尝试了一些解决方案,其中涉及`dpkg`命令的使用锁文件的操作。引用[3]中提到了使用`dpkg--remove--force-remove-reinstreq`来强制卸载应用,这可能暗示我们在安装时遇到的权限或锁问题。另外,引用[2]中还提到删除/tmp目录下的文件,以及使用`dpkg--configure-a`来修复。但是,用户的问题是在使用`dpkg-i`安装软件包时遇到“不被允许的操作”报错。这个报错通常权限不足有关,因为`dpkg`安装软件需要root权限。因此,我们首先应该确认用户是否使用了`sudo`来执行命令,即命令应该是:sudodpkg-i<package_name.deb>如果没有使用`sudo`,那么就会因为权限不足而报错。然而,如果用户已经使用了`sudo`,那么可能的原因括:1.系统存在另一个管理进程正在运行(如apt),导致dpkg被锁定。因为同一时间只允许一个管理工具操作。2.锁文件未被正确清除,导致dpkg无法执行。根据引用[2]引用[3]中的解决方案,我们可以整理出以下步骤:步骤1:确保使用root权限执行命令,即在命令前加`sudo`。步骤2:检查是否有其他进程正在占用dpkg锁,如果有,则结束相关进程。步骤3:删除dpkg锁文件。步骤4:尝试使用`dpkg--configure-a`来修复可能存在的损坏。步骤5:重新尝试安装。另外,还可能需要检查软件包是否完整且系统架构兼容(例如,是否是适用于该系统的.deb?)但是,用户的问题描述明确是“不被允许的操作”,这通常不是锁文件导致的,而是权限问题或者安全策略问题。考虑到银河麒麟系统是基于Ubuntu的,而且它可能有一些额外的安全策略,比如SELinux(但麒麟系统通常使用其他安全机制)或者AppArmor,也可能有sudoers策略的限制。因此,我们还可以考虑:1.检查当前用户是否在sudoers列表中,并且有权限执行dpkg命令。2.尝试切换到root用户(如果知道root密码),然后执行dpkg命令。如果用户没有sudo权限,那么需要联系系统管理员。综合以上,我们给出以下解决方案:解决方案:1.确认使用sudo:确保你在安装命令前面加上了`sudo`,即:sudodpkg-iyour_package.deb2.检查用户权限:确认当前用户拥有sudo权限。你可以尝试运行`sudo-v`来验证(如果提示输入密码,输入后没有错误提示,则说明有sudo权限)。3.检查并释放锁:如果系统中有其他管理进程在运行,会导致dpkg被锁定。我们可以尝试以下命令释放锁:sudorm/var/lib/dpkg/locksudorm/var/lib/dpkg/lock-frontendsudorm/var/cache/apt/archives/lock注意:在删除这些锁文件之前,确保没有其他管理进程(如aptapt-get、synaptic等)正在运行。4.修复未完成的安装:运行以下命令修复可能存在的未完成安装:sudodpkg--configure-a5.重新安装:再执行安装命令。6.如果上述步骤无效,检查软件包是否完整。你可以尝试重新下载软件包,或者检查软件包的架构是否系统匹配(例如,不能在ARM架构上安装x86的)。7.如果仍然不行,考虑使用gdebi工具(如果已安装)来安装,因为gdebi可以自动解决依赖关系,并且有时比dpkg更友好:sudogdebiyour_package.deb如果没有安装gdebi,可以使用以下命令安装:sudoaptupdatesudoaptinstallgdebi8.查看日志:检查/var/log/dpkg.log文件,可能会提供更详细的错误信息。9.检查安全策略:银河麒麟系统可能启用了安全启动或类似的安全机制,这可能会阻止安装未签名的软件包。可以尝试检查系统安全设置,或者关闭安全启动(但一般不推荐,除非你知道后果)。由于引用[2]中还提到了删除/tmp目录下的文件,但这里dpkg锁关系不大,故不作为主要推荐,但在某些情况下可以尝试(注意:删除/tmp下的文件可能会影响正在运行的程序,请确保没有重要程序在使用临时文件):sudorm-r/tmp/*但是,请注意,删除/tmp下的文件要谨慎,因为可能有一些程序正在使用临时文件。建议在删除前,可以重启系统,这样/tmp会自动清空,然后重试安装。最后,如果问题依然存在,建议查看官方文档或者寻求专业技术支持。注意:在操作过程中,请确保你了解每条命令的含义,避免对系统造成不可逆的影响。我们将按照上述步骤给出详细的解决方案。</think> 在银河麒麟系统中遇到`dpkg -i`安装软件包时出现“不被允许的操作”报错,通常由以下原因及解决方案引起: ### 🔧 原因分析解决方案 #### 1. **权限不足** - **现象**:未使用`sudo`执行命令 - **解决方案**: ```bash sudo dpkg -i 软件包名.deb # 添加sudo提权 ``` #### 2. **APT系统锁冲突** - **现象**:其他管理进程(如软件商店、apt)占用锁 - **解决方案**: ```bash # 终止占用进程 sudo kill $(ps aux | grep -E 'apt|software-store' | awk '{print $2}') # 强制删除锁文件(引用[2][3]) sudo rm /var/lib/dpkg/lock sudo rm /var/cache/apt/archives/lock ``` #### 3. **系统完整性保护** - **现象**:麒麟系统安全机制阻止安装 - **解决方案**: ```bash # 强制配置未完成安装(引用[2]) sudo dpkg --configure -a # 使用强制卸载重装策略(引用[3]) sudo dpkg --remove --force-remove-reinstreq 冲突名 ``` #### 4. **临时文件异常** - **现象**:`/tmp`空间不足或文件损坏 - **解决方案**(引用[2]): ```bash sudo rm -rf /tmp/* sudo reboot # 清除后重启 ``` #### 5. **依赖不兼容** - **现象**:软件包系统架构或依赖冲突 - **解决方案**: ```bash # 修复依赖 sudo apt --fix-broken install # 源码编译安装(引用[4]) ./configure --prefix=/usr/local make sudo make install ``` ### 📝 操作步骤总结 1. **基础修复**: ```bash sudo killall apt software-store sudo rm /var/lib/dpkg/lock sudo dpkg --configure -a ``` 2. **清理系统**: ```bash sudo rm -rf /tmp/* sudo apt clean ``` 3. **重新安装**: ```bash sudo dpkg -i --force-overwrite 软件包名.deb ``` ### ⚠️ 注意事项 - 谨慎使用`--force`参数,可能导致系统不稳定(引用[2]) - 通过`apt`替代`dpkg`避免依赖问题: ```bash sudo apt install ./软件包名.deb ``` - 重要操作前备份数据:`sudo tar -czvf backup.tar.gz /etc/apt /var/lib/dpkg` > **提示**:若持续报错,建议检查软件包是否兼容当前系统版本(如V10 SP1),或尝试从麒麟软件商店重新获取官方认证(引用[1])[^1]。 --- ### 📚 相关问题 1. 如何验证银河麒麟系统中软件包的完整性? 2. 除 `dpkg` 外,麒麟系统推荐哪些安全的软件安装方法? 3. 麒麟系统出现 "`E: Sub-process /usr/bin/dpkg returned an error code`" 如何修复?
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值