今天,我尝试在 64 位 Ubuntu 15.10 上安装 wine,但遇到了一些问题。我只需运行
sudo apt-get install wine
现在的问题是我无法运行 wine 二进制文件,错误如下:
linn@Asus:/$ wine
bash: /usr/bin/wine: cannot execute binary file: Exec format error
虽然 64 位二进制文件似乎运行良好:
linn@Asus:/$ wine64
Usage: wine PROGRAM [ARGUMENTS...] Run the specified program
wine --help Display this help and exit
wine --version Output version information and exit
现在我当然开始进行一些深入研究,看来“wine”二进制文件确实是 32 位二进制文件,而且我显然需要一些额外的库才能运行它们。
linn@Asus:/$ file /usr/bin/wine
/usr/bin/wine: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=ca94516ed13ede12998b464b0a5ef9f5ebebfb67, stripped
尽管我认为当我通过 apt-get 安装 wine 时,任何此类库都应作为依赖项。我仍然尝试安装它们,但意识到我已经拥有了所有这些,并且没有做出任何更改。(例如建议的库这里或者这里)
坦白说,我不知道该尝试什么了,而且从我在网上发现的少量类似问题来看,这似乎不是一个过于频繁出现的问题。
另一个可能表明某些问题的奇怪问题是,这是一台运行瑞典语语言包的笔记本电脑。当我尝试运行 winecfg 时,发生了以下情况:
linn@Asus:/$ winecfg
/usr/bin/wine: 1: /usr/bin/wine: Syntax error: "(" unexpected
是否可能由于某些语言问题而导致路径混乱?
wine 版本如下:
linn@Asus:/$ wine64 --version
wine-1.6.2
但是在尝试官方 wine PPA 中的 1.7 和 1.8 版本时出现了同样的问题。
提前感谢您的任何帮助和努力。
更新 1
我尝试通过对所有与 wine 相关的软件包运行 apt-get remove 和 autoremove 来删除所有与 wine 相关的软件包。现在,检查 dpkg 中是否有与 wine 相关的软件包,结果如下:
linn@Asus:~$ dpkg --get-selections | grep -e wine
libkwineffects6 deinstall
libwine-development:amd64 deinstall
libwine-development:i386 deinstall
wine1.6 deinstall
wine1.6-amd64 deinstall
wine1.6-i386:i386 deinstall
wine1.8 deinstall
wine1.8-amd64 deinstall
wine1.8-i386:i386 deinstall
然后我尝试了 Gert Otten 在他的回答中所建议的方法并运行(我尝试安装普通的“wine”而不是“wine-bin”,因为 Ubuntu 15.10 似乎不存在“wine-bin”包):
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install wine
不幸的是,它导致了同样的问题。
答案1
好吧,问题是我使用了自定义的 4.4 内核,因为我的笔记本电脑上的触摸板无法正常工作。此问题描述如下内核 bugzilla 线程。
我现在运行的 4.5 版 Linux 内核包含了所需的更改。从自定义内核更改为主线内核后,wine 就开始正常工作了。然后,我还用官方 4.4 主线内核进行了测试,发现 wine 也能正常工作。因此,我非常肯定自定义内核是导致问题的原因,尽管我无法解释原因。
希望这可以帮助有类似问题的人。
答案2
您必须安装 i386 版本的 Wine,您可以使用以下命令进行安装:
sudo dpkg --add-architecture i386
运行之后:
sudo apt-get update && sudo apt-get install wine-bin
最后运行:
winecfg
测试 Wine i386 版本。