在一个声明为32位的存储库中有一个.deb软件包,但是安装的是64位的二进制文件。这种情况发生在通过存储库使用apt-get安装以及下载.deb文件后运行dpkg -i命令进行安装时。
如果我安装这个文件来尝试,它会升级/覆盖我现有的32位应用程序,导致无法再运行它(在15.04 32位Ubuntu上)。当这种情况首次发生时,我使用which命令搜索已安装的可执行文件,并使用file命令检查其类型,结果证明它是一个64位的ELF二进制文件。
所以在维护者修复问题之前,我该如何确定一个软件包(来自仓库或.deb文件)包含哪种架构呢?
我尝试了仓库版本的apt-cache show和apt-cache policy,以及.deb文件的dpkg -I,但它们都报告32位,这是错误的。
除了访问软件包的元信息(我认为这就是我尝试的命令所做的),显然不适用于找到所包含可执行文件的真实架构,还有其他方法吗?
如果我安装这个文件来尝试,它会升级/覆盖我现有的32位应用程序,导致无法再运行它(在15.04 32位Ubuntu上)。当这种情况首次发生时,我使用which命令搜索已安装的可执行文件,并使用file命令检查其类型,结果证明它是一个64位的ELF二进制文件。
$ file qtox
qtox: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, stripped
所以在维护者修复问题之前,我该如何确定一个软件包(来自仓库或.deb文件)包含哪种架构呢?
我尝试了仓库版本的apt-cache show和apt-cache policy,以及.deb文件的dpkg -I,但它们都报告32位,这是错误的。
除了访问软件包的元信息(我认为这就是我尝试的命令所做的),显然不适用于找到所包含可执行文件的真实架构,还有其他方法吗?