在Windows 10上运行Wine。

Wine是用于在运行Unix的计算机上运行Windows应用程序的程序。

在Windows上启动Wine一直是追随心脏的粉丝们梦想成真的“我们要做我们必须做的,因为我们不需要这样做”,至少从2004年开始,当时有人试图在Cygwin中编译Wine并破坏了主机注册表系统

理由:“但是在最近的Windows中不能正常运行的旧应用程序呢?” 但是我们知道真正的原因是“我为自己的艺术受了很长时间,现在轮到你了。”

在2008年底,我被迷恋所克服-我(似乎是我)在Wine Wiki上创建了WineOnWindows页面。 简而言之:这根本不可能,因为一切都可以通过Cygwin,MinGW或Windows Services for Unix运行。 当前页面并不成功。

Windows 10引入了Linux的Windows子系统,Ubuntu可从Microsoft Store方便地下载。 结果,除非您需要手动设置DISPLAY环境变量,否则我们的愚蠢想法几乎是自己实现的。

直到现在,它仍然是无用的。 Wine仅适用于64位Windows应用程序,也就是说,甚至不适用于Windows 10本身附带的所有应用程序。

(最初的项目是在某人无法在Windows 10上运行Encarta 97之后启动的。因此,像任何真正的怪异解决方案一样,它并不能真正解决用户的原始问题)。

但我想再次强调: 现在它可以正常工作了 。 我不是一个疯狂的天才,他实现了一个很棒的项目-我似乎只是第一个公开宣布这一事实的人。

怎么做这个愚蠢的事情


1.您有64位Windows 10,对吗? 这是WSL的唯一版本。

2.安装WSL。 控制面板->应用程序->程序和功能->打开或关闭Windows功能。 选中“ Linux的Windows子系统”框。 重新启动Windows。

3.转到Microsoft商店,安装Ubuntu(基本上是创建WSL来启动它)。 我安装了Ubuntu 18.04 LTS。 打开Ubuntu,您将看到bash终端。

4.从bash命令行安装以下内容:

sudo dpkg --add-architecture i386 sudo apt update; sudo apt upgrade sudo apt install wine-stable 

如果您想四处逛逛,可以安装Wine的最新版本(不要忘记wine-devel> = 4.5所需的两个新库,而Ubuntu中还没有包含这两个库!)。 让我知道这是否有效。

5. .bashrc下行添加到您的.bashrc

 export DISPLAY=:0.0 

您可能还希望在当前的bash窗口中运行它。

6. 安装VcXsrv ,这是为Windows编译的xorg的精美打包版本-只需获取可执行文件的最新版本并运行它即可。 通过“开始”按钮和XLaunch启动X Server。 他将指导您进行默认设置-保留大多数默认设置。 以防万一,我检查了“禁用访问控制”。 保存配置。

6a。 如果要验证X服务器的配置是否正确,请安装sudo apt install x11-apps并运行xeyes短暂返回80-90s。

7. wine本身不起作用,因为32位二进制文​​件不在WSL中启动 。 在我们的64位Windows 10上,错误/usr/bin/wine: 40: exec: /usr/lib/wine/wine: Exec format error 。 显然,这已在WSL 2修复

同时,在Wine中运行记事本!

  wine64 /usr/lib/x86_64-linux-gnu/wine/fakedlls/notepad.exe 



要做的事: 32位支持。 我们将不得不等待WSL 2发布 。 我不知道古老的Win16程序是否可以工作-从理论上讲,即使它们不再在Windows本身也可以在Wine中运行。

通过qemu的32位应用程序


感谢一位匿名评论员 ,他提出了如何启动32位应用程序的建议。

  sudo apt安装qemu-user-static
 sudo update-binfmts --install i386 / usr / bin / qemu-i386-static --magic'\ x7fELF \ x01 \ x01 \ x01 \ x03 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x03 \\ x00 \ x03 \ x00 \ x01 \ x00 \ x00 \ x00'--mask'\ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xfc \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xff \ xf8 \ xff \ xff \ xff \ xff \ xff \ xff \ xff'
 sudo服务binfmt-support启动 


现在我们可以做:

 好玩@ DESKTOP-7F6DU8P:〜$ wine --version
 wine-3.0(Ubuntu 3.0-1ubuntu1) 

但是,Encarta 97仍然无法正常工作:

 有趣的@ DESKTOP-7F6DU8P:/ mnt / e $ wine SETUP.EXE
 wine:对地址0x11df的0xffffffff进行读取访问时出现未处理的页面错误:0x00002c11(线程0011),启动调试器...
 0011:err:seh:start_debugger无法启动调试器(“ winedbg --auto 15108”)(2)
阅读《 Wine开发人员指南》,了解如何设置winedbg或其他调试器 

对于主题中的内容: fileSETUP.EXE: MS-DOS executable, NE for MS Windows 3.x ,因此我们需要深入研究罕见的16位程序。

Encarta 97可以在Linux上的Wine 4.13中安装并正常运行,但在Windows 10上仍无法在4.13中运行:

 有趣的@ DESKTOP-7F6DU8P:〜$ wine /mnt/e/SETUP.EXE
 Xlib:显示“:0.0”缺少扩展名“ MIT-SHM”。
 Xlib:显示“:0.0”缺少扩展名“ MIT-SHM”。
 0009:错误:进程:__ wine_kernel_init启动事件等待超时
 001d:错误:进程:__ wine_kernel_init启动事件等待超时
 wine:对地址0x11cf的0xffffffff进行读取访问时出现未处理的页面错误:0x00002c11(线程001e),正在启动调试器... 001e:err:seh:start_debugger无法启动调试器(“ winedbg --auto 28152”)(2)
阅读《 Wine开发人员指南》,了解如何设置winedbg或其他调试器
 001d:错误:ntdll:RtlpWaitForCriticalSection节0x7e6273e0“ syslevel.c:Win16Mutex”等待在线程001d中超时,被001e阻止,重试(60秒)
 Xlib:显示“:0.0”缺少扩展名“ MIT-SHM”。
无法加载酒壁虎。  HTML呈现将被禁用。
 001e:错误:seh:raise_exception未处理的异常代码c0000005标志0 addr 0x7b4a6abc
 wine客户端错误:1e:写入:错误的文件描述符 

当然,它在几次启动中都会产生不同的错误消息...

Source: https://habr.com/ru/post/zh-CN463375/


All Articles