第一杯红酒:Wine让Windows程序运行在Linux上

Wine. Run Windows program on Linux.

Posted by Tee on April 27,2017

又是一篇标题暴露内容的水文。如果你还不了解Wine的,请跟着我继续往下看吧。

关于Wine

Wine在1993年由Bob Amstadt及Eric Youngdale发起,1993年7月4日发布第一个版本。Wine是一个在x86、x86-64的类UNIX系统下运行微软Windows程序的"兼容层"。在Wine中运行的Windows程序,就如同运行原生Linux程序一样,不会有模拟器那样的性能问题。Wine是"Wine Is Not an Emulator"的递归缩写,它并不是模拟器

Wine可以运行在Linux、Mac、FreeBSD和Solaris上,由世界各地的开发者,以及CodeWeavers, Bordeaux, TransGaming, Corel, Macadamian and Google等公司共同参与开发。

Wine的出现大大增加了类Unix的实用性,使新使用者更容易切换到类Unix系统。这吸引了更多的商业项目与社区关注到类Unix,也有不少软件经过Wine测试后发布,比如Reaper, Picasa,uTorrent,MediaCoder。

32位还是64位

Wine拥有32位与64位。

  • 32位Wine可以安装在32位的Linux系统或64位的Linux系统上,能运行16位或32位的Windows程序
  • 64位Wine只能安装在64位系统上,能运行32位与64位的Windows程序

安装Wine

Ubuntu官方库的Wine版本比较旧,建议安装最新版Wine。

如果你安装的是比较新的Windows程序,建议使用Wine开发版,会比稳定版修复更多bug。

如果你安装的是其他版本的Wine,需要先删除原来安装的Wine。

  • Arch Linux

    如果是64位的Arch,需要先开启Multilib仓库:

    sudo vim /etc/pacman.conf
    

    取消注释或添加以下:

    [multilib]
    Include = /etc/pacman.d/mirrorlist
    

    Arch安装Wine

    Arch Linux官方库的Wine就是开发版的

    sudo pacman -S wine
    
  • Ubuntu

    如果是64位的Ubuntu,开启32位支持

    sudo dpkg --add-architecture i386
    

    添加winehq库

    wget https://dl.winehq.org/wine-builds/Release.key
    sudo apt-key add Release.key
    sudo apt-add-repository https://dl.winehq.org/wine-builds/ubuntu/
    

    升级库

    sudo apt-get update
    

    Ubuntu安装Wine稳定版

    sudo apt-get install --install-recommends winehq-stable
    

    Ubuntu安装Wine开发版

    sudo apt-get install --install-recommends winehq-devel
    

    Ubuntu安装dev包(可选,wineasio编译需要)

    https://dl.winehq.org/wine-builds/ubuntu/pool/main/

    在上面地址找到你的wine版本的deb包。例如,若使用 wine-devel 分支,版本 2.6,Ubuntu 16.04(xenial),64位系统需要下载 https://dl.winehq.org/wine-builds/ubuntu/pool/main/wine-devel-dev_2.6.0~xenial_amd64.deb 下载后进行安装即可。

如何使用Wine

在Wine里运行的Windows程序都有一个类似于原生Windows的目录

你可以拥有多个Wine系统目录,比较灵活的是不同的Windows的程序可以分别安装在不同的Wine系统目录。这样你就可以相对“干净”地安装Windows程序,如QQ和Reaper是安装在不同的Wine系统目录,删除QQ直接把QQ所属的Wine系统目录删除就可以了。当然你也可以全部Windows程序使用同一个Wine系统目录。

如何运行.exe程序?

  • 使用默认的Wine系统目录 最简单的方法就是直接双击.exe运行,这样自动生成的Wine系统目录都在默认的(~/.wine)目录里。

  • 分别独立的Wine系统目录
    打开终端,输入

    env WINEPREFIX=~/.wine2 wine reaper_install.exe
    

    就可以用(~/.wine2)这个Wine系统目录运行"reaper_install.exe"这个程序。如果你是64位的Wine,需要32位的Wine系统目录,需要在"env"后加上"WINEARCH=win32"这个命令。

    env WINEARCH=win32 WINEPREFIX=~/.wine2 wine reaper_install.exe
    
  • 相对的,运行安装好的Windows程序,命令如

    env LC_ALL=zh_CN.UTF-8 WINEPREFIX=/home/tee/.wine2/ wine ".wine2/drive_c/REAPER/reaper.exe"
    

    默认的Wine系统目录就是:

    env LC_ALL=zh_CN.UTF-8 WINEPREFIX=/home/tee/.wine/ wine ".wine/drive_c/REAPER/reaper.exe"
    

    ps: 所有的运行命令都可以做成.desktop的可运行文件来运行,不用每次都输入命令。"LC_ALL=zh_CN.UTF-8"是在中文出现乱码等情况添加的。

Wine使用技巧

  • 在终端运行"winecfg"命令,可以选择当前Wine系统目录下的Windows版本,如Win10、Win7等。
  • 终端运行"winetricks"命令,可以方便安装一些Windows依赖。
  • 在终端命令行善用"WINEPREFIX"与"WINEARCH"来切换不同的Wine环境。

与Wine有关的其他项目

  • wineasio 音频类wine必备软件,在wine里使用asio。wineasio由JACK驱动,必须先安装JACK。更多详细介绍请看相关文章

  • winetricks 使用Winetricks快速脚本,能够方便地安装许多Windows组件,包括DirectX、msxml(被Office 2007、IE浏览器依赖)visual运行库还有其他更多的。

  • CrossOver CrossOver是一个商业软件,由CodeWeavers开发。大部分经过Wine测试的代码都会合并到CrossOver,被大家成为"Wine的商业版本"

  • Cedega(WineX) Cedega是一个商业软件,由TransGaming开发,专注面向游戏。由于许可证的不同,Wine的开发大部分都不会合并到Cedega。目前Wine的发展比较迅速,很多游戏在Wine下运行会比Cedega下运行要好。

参考资料

https://wiki.winehq.org/Main_Page

https://wiki.archlinux.org/index.php/Wine

https://sourceforge.net/projects/wineasio/