dpkg:错误:无法删除数据库当前使用的架构“i386”

dak*_*aka 21 debian dpkg architecture x86

我用这个命令来添加 i386 arch:

sudo dpkg --add-architecture i386
Run Code Online (Sandbox Code Playgroud)

然后在没有安装任何软件包的情况下立即尝试删除 i386 arch,如下所示:

sudo dpkg --remove-architecture i386
Run Code Online (Sandbox Code Playgroud)

我得到了错误:

dpkg: error: cannot remove architecture 'i386' currently in use by the database
Run Code Online (Sandbox Code Playgroud)

我已经看到了迄今为止涉及移除i386的包装解决方案,我还没有安装任何,是的那些安装有该操作系统的运作至关重要。我该怎么办?

编辑,请阅读以下内容以避免破坏您的操作系统:

事实证明,64 位 Linux 操作系统已经包含 i386 架构,因此该命令sudo dpkg --add-architecture i386并没有真正执行任何操作。

ste*_*eve 52

dpkg --get-selections | awk '/i386/{print $1}'
Run Code Online (Sandbox Code Playgroud)

然后如果对它们被删除感到满意,请运行

apt-get remove --purge `dpkg --get-selections | awk '/i386/{print $1}'`
Run Code Online (Sandbox Code Playgroud)

然后重试

dpkg --remove-architecture i386
Run Code Online (Sandbox Code Playgroud)

  • 谢谢这个,非常有用!您知道在 64 位 Ubuntu 16.04 上这样做是否安全吗?我之所以这么问是因为我看到一长串软件包,并且担心如果我将它们全部删除可能会出现问题 (4认同)
  • @sunyata 如果您的目标是从系统中删除 i386,那么方法就是:删除所有 i386 包,然后删除架构。 (3认同)
  • 这应该是公认的答案!奇迹般有效 (2认同)

Gil*_*il' 9

从您的列表中,您似乎只有用于 Wine 的 32 位软件包。Wine 需要一堆 32 位库来运行 32 位 Windows 应用程序。除非您卸载 32 位 Wine,否则您将无法删除 i386 架构。但是这样做没有意义:启用 i386 架构并没有错。