Wine 是一个在 x86、x86-64 上允许类 Unix 操作系统在 X Windows System 下运行 Microsoft WIndows 程序的软件。Wine 通过提供一个兼容层来将 Windows 的系统调用转换成对 POSIX 标准的调用。
Wine 最早是“Windows Emulator”,即 Windows 模拟器的所写,但现在为“Wine Is Not an Emulator”的缩写,即 Wine 不是模拟器。Wine 的正确名称是“Wine”,而不是全大写或全小写。

操作系统

Wine 官方支持 Ubuntu 而没有 CentOS,之前我用 CentOS 自己编译构建官方源码时,总会报依赖错误。后来我转向了 Ubuntu,考虑到可能后者更适合桌面使用与开发。以下有关 Wine 的安装与使用都是在 Ubuntu 18.04 中进行的。

安装 Wine

下载安装网址:https://wiki.winehq.org/Ubuntu,步骤如下:
如果是64位系统,首先允许32位架构:

sudo dpkg --add-architecture i386

添加仓库:

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

这样会默认添加当前操作系统版本对应的仓库。或者可以显式指定操作系统版本:

wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key
sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'

安装稳定版 Wine:

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

注意

使用 apt-get 安装 Wine 默认会在 /usr/share/applications 下创建 wine.desktop 文件,但似乎这个文件无效,反而导致我启动 Wine 相关的命令时 gnome docker(gnome 桌面侧边栏)无法显示 Wine 的图标(侧边栏显示图标读取 */applications/ 下的 *.desktop文件)。所以解决办法就是删除对应目录下的 wine.desktop

初始化 Wine

Wine 默认将配置文件和安装的 Windows 程序保存在 ~/.wine。这样的目录称为一个"Wine prefix"或"Wine bottle"(保留原文,下文称“系统目录”)。每次运行 Windows 程序(包括内置程序,如 winecfg)时,系统目录会自动创建(如果缺失)或更新。系统目录中存放有相当于 Windows 下 C盘(更确切的说应是系统盘)的文件夹。

WINEPREFIX

通过设置 WINEPREFIX 环境变量,可以更改 Wine 系统目录的位置。如果希望让不同的 Windows 程序使用不同的系统环境或配置,这一变量会非常有用。
例如,如果您使用 WINEPREFIX=~/.win-a wine-A程序.exe 参数来运行一个程序。另一个使用 WINEPREFIX=~/.win-b wine-B程序.exe 参数,这两个程序将使用独立的C盘和注册表配置。
以下命令会建立一个默认的系统目录,且不启动任何 Windows 程序:

WINEPREFIX=~/.customprefix wineboot -u

WINEARCH

很多软件(如 QQ) 只能在32位环境下安装,而使用 Winetricks 甚至有些软件(如wmp10)只能在纯32位环境下安装。
对于64位用户,默认创建的系统目录是64位环境的。若想使用纯32位环境,修改WINEARCH 变量win32为即可: WINEARCH=win32 winecfg 这样就会生成32位Wine环境。若不设置 WINEARCH 得到的就是64位环境。
通过 WINEPREFIX 变量,在不同的系统目录分别创建32位和64位环境:

WINEARCH=win32 WINEPREFIX=~/.win32 winecfg
WINEPREFIX=~/.win64 winecfg

winetricks也接受WINEPREFIX变量,以安装Steam为例:

WINEARCH=win32 WINEPREFIX=~/.win32 winetricks steam

Winetricks

Winetricks是一个辅助脚本,用于在wine中下载并安装各种闭源的组件和运行库。

安装 Winetricks

wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
sudo mv winetricks /usr/local/bin

更新 Winetricks

winetricks --self-update

使用 Winetricks

在控制台输入 winetricks 即可运行,如果不带参数,winetricks 将以图形界面显示可用的软件包列表。也可以在 winetricks 命令后附带需要安装的软件包的名称,它会立即开始安装过程。例如,安装 corefonts 包和 vcrun6 包:

winetricks corefonts vcrun6

与 wine 命令相似,winetricks 可以使用 $WINEPREFIX 变量,对应不同的 wine 目录,例如:

env WINEPREFIX=~/.winetest winetricks mfc40u

向 ~/.winetest 前缀中安装 mfc40u 包。

Wine 使用32位环境

WINEARCH=win32 WINEPREFIX=~/.win32 winecfg

输入以上命令后,Wine 会自动创建 ~/.win32 及该文件夹下的系统目录

Wine 安装字体

WINEPREFIX=~/.win32 winetricks cjkfonts corefonts fakechinese fontfix fontsmooth-gray fontsmooth-rgb fontsmooth-bgr tahoma allfonts
  • 我当时安装 tahoma 时无法连接下载网站,所以后来在另一个网站中下载了 tahoma32.exe,并替换到 ~/.cache/winetricks/tahoma 目录下,再运行:

    WINEPREFIX=~/.win32 winetricks tahoma
    

    下载网址为:http://dir.vietnam.online.fr/home/vnDownloads.htm

Wine 安装 Windows DLL 或组件

WINEPREFIX=~/.win32 winetricks d3drm d3dx9 devenum dotnet40 gdiplus msctf mfc40 mfc42 msls31 msxml6 ole32 quartz riched20 vb6run vcrun6 vcrun2003 vcrun2005 vcrun2008 vcrun2010 vcrun6 wmp10
  • 安装 wmp10 时可能需要中断,killwine相关进程后再次使用 winetricks 进行安装才行。

或者使用以下命令打开 winetricks GUI 界面:

WINEPREFIX=~/.win32 winetricks

进入“安装Windows DLL 或组件”界面:

选择上述组件并安装

Wine 安装 QQ:

进入 winetricks 的 GUI 界面,选择安装 Windows 应用:

勾选 qq ,进行安装。
安装过程中,winetricks 会自动停用 ntoskrnl.exetxplatform.exe。需要禁止 winedevice.exe 使用 ntoskrnl.exe,必须在系统默认设置里面禁止,对 qq 单独设置无效。为了不影响其他程序,建议将 qq 安装在单独的系统目录内,比如:

WINEARCH=win32 WINEPREFIX=~/.wineqq winecfg

然后通过

WINEPREFIX=~/.wineqq winetricks

来安装 qq。

注意

在聊天界面使用气泡模式,输入文字会变成方块,解决方法是在 wine 命令前加 LANG=zh_CN LC_ALL=zh_CN.UTF-8 环境变量参数。

前两天将QQ升级为了最新版的QQ 9.0.8,但是会崩溃,所以还是推荐使用QQ 8.9版本的

创建桌面快捷方式:

安装完程序最好登出一下账号,然后再次进入,这样 Wine 创建的应用快捷方式可以刷新生效。
Wine 自动创建的程序快捷方式位于 ~/.local/share/applications/wine/Programs 目录下。
将程序对应的快捷方式(比如 “腾讯QQ.desktop”)复制到 ~/Desktop 目录下即可创建桌面快捷方式。
desktop 文件的一般内容(经过了我的修改,因为原来的无法正常启动)如下:

[Desktop Entry]
Name=腾讯QQ
Type=Application
StartupNotify=true
Icon=QQ
Exec=env WINEPREFIX=/home/wayne/.win32 LANG=zh_CN LC_ALL=zh_CN.UTF-8 wine C:\\Program\ Files/Tencent/QQ/Bin/QQ.exe

Wine 安装微信:

从微信官网下载最新版微信安装包,使用 wine 进行安装:

WINEPREFIX=~/.win32 wine WeChat_C1018.exe

Wine 创建的微信快捷方式启动后微信是英文而且中文会乱码,解决方法是修改快捷方式,在 wine 命令前加 LANG=zh_CN LC_ALL=zh_CN.UTF-8 环境变量参数:

[Desktop Entry]
Name=微信
Exec=env WINEPREFIX="/home/wayne/.win32" LANG=zh_CN LC_ALL=zh_CN.UTF-8 wine C:\\\\windows\\\\command\\\\start.exe /Unix /home/wayne/.win32/dosdevices/c:/ProgramData/Microsoft/Windows/Start\\ Menu/Programs/微信/微信.lnk
Type=Application
StartupNotify=true
Path=/home/wayne/.win32/dosdevices/c:/Program Files/Tencent/WeChat
Icon=8A76_WeChat.0
StartupWMClass=wechat.exe

注意

在微信中打开腾讯新闻或者公众号会崩溃,解决办法是微信设置里勾选使用默认浏览器打开网页

Wine 安装 三国志11

下载并使用 wine 来安装三国志11威力加强版。
我的 wine 自动生成的快捷方式启动会中文乱码,采取和微信一样的方法修改 desktop 文件。
一开始启动游戏是失败的,或者没有音频,会报如下错误:

fixme:gstreamer:unknown_type Could not find a filter for caps: video/mpeg, systemstream=(boolean)true, mpegversion=(int)1
fixme:gstreamer:watch_bus decodebin5639: Your Gstreamer Installation Is Missing A Plug-in。

解决方法是在 winecfg 中添加对 san11pk.exe 的程序设置,在函数库中停用 winegstreamer,并添加 quartz

Wine 安装 Office:

本人只测试过 Office 2010 和 Office 2013,其中 Office 2010 可以正常运行。Office 2013 Pro 只有英文版可以正常运行,而且只有在 wine 3.0.1 下运行正常,在 wine 3.11 中会异常。
另外在 Wine 中无法成功卸载 Office 2013 Pro。所以建议开启独立的系统目录来安装运行 Office,比如:

WINEARCH=win32 WINEPREFIX=~/.wineoffice winecfg

安装必要字体及DLL组件后,到相应的安装目录下执行:

WINEPREFIX=~/.wineoffice wine setup.exe

来安装 Office 2013 Pro

卸载软件

可以通过 winetricks 来卸载软件。
如果软件无法卸载或者系统出错,可以直接删除所对应的系统目录。

Winetricks-zh

winetricks-zh 是一个 winetricks 的修改版,添加了一些国内常用的 windows 应用支持,以弥补官方版 winetricks 对国内应用支持不足的情况。但最终目的仍然是希望上游能将这些应用添加进去。
winetricks 网址:https://github.com/hillwoodroc/winetricks-zh/

桌面图标

Ubuntu 18.04 Gnome桌面显示传统托盘图标:安装TopIconPlus的gnome-shell扩展,命令:sudo apt-get install gnome-shell-extension-top-icons-plus gnome-tweaks,然后用gnome-tweaks开启这个扩展。

参考资料

[1] https://homulilly.com/post/run-japanese-galgame-on-Ubuntu-with-wine.html “Ubuntu 下通过 Wine 运行日文 Galgame”
[2] https://wiki.archlinux.org/index.php/Wine_(简体中文)#.E5.A3.B0.E9.9F.B3 “Wine (简体中文)”
[3] https://www.winehq.org/ “WineHQ 官网”
[4] https://www.cnblogs.com/jikexianfeng/p/5769430.html “winetricks 用WineTricks令你的Wine更完整”
[5] https://wiki.winehq.org/Winetricks “WInetricks”
[6] http://dir.vietnam.online.fr/home/vnDownloads.htm “Tahoma 字体”

[Linux] 使用 Wine相关推荐

  1. Linux下wine用法

    Linux下wine用法 下面是wine的使用方法. 一.要在Linux下运行,wine是必不可少的,所以,请将wine安装到你的系统里. 二.将你的Windows所在的分区加载到某个目录.(本文假定 ...

  2. linux Fedora安装桌面,CentOS6.x\Red Hat\Fedora\Linux 安装Wine 1.7.48 桌面运行环境教程

    Open Source Software for running Windows applications on other operating systems Wine ("Wine Is ...

  3. linux中wine yum安装,分享|在基于RedHat或Debian的系统上安装 Wine 1.7

    Wine,Linux上最流行也是最有力的软件, 可以顺利地在Linux平台上运行Windows程序和游戏. 这篇文章教你怎么在像CentOS, Fedora, Ubuntu, Linux Mint一样 ...

  4. Linux安装wine以及运行Windows程序

    文章目录 ubuntu 16.04安装Wine 安装Wine依赖环境 安装winetricks 安装字体 安装Wine中Windows程序依赖 配置wine 初始化 Wine wine环境 Wine ...

  5. Linux中Wine QQ上线 转变成离线问题的解决(什么时候才能自己修改?)(qq2012出了 那个没有这个BUG)

    Linux中Wine QQ问题的解决 因为周围朋友同事都使用QQ,联络上离不开QQ.WebQQ的聊天记录和文件传送功能有限,LinuxQQ经常显示备注出错,并且文件传送功能也很有限,无奈选用非常占资源 ...

  6. arm linux装wine,Ubuntu下安装wine详细介绍

    Ubuntu安装wine一般使用两种方式,源码编译或者从网络源安装. 源码编译安装相对比较稳定,速度快.效率高,但是需要时间编译,相比一分钟的源安装,几十分钟的编译确实很长.源安装是别人已经帮你编译好 ...

  7. linux 调用 wine 程序,Wine官方版|Wine v3.8 Development在Linux下执行Windows应用程序 官方英文版 - 维维软件园...

    Wine官方版下载,Wine是小编为大家整理的一款在Linux操作系统下履行有些Windows应用程序的工具程序,如果你想在Linux下运行Windows程序,Wine是你的必备工具,Wine在X和U ...

  8. Linux使用wine完美运行QQ2011(Ubuntu10.10)

    Ubuntu10.10: 玩linux有时很不爽,像不能装最新版本的QQ客服端(TX提供的linux版功能少不说,而且密保等级高的QQ号码还无法登录) 当然现在webQQ也很给力,但总不太习惯 今天在 ...

  9. linux中wine文件夹在哪,科学网—Linux下wine的安装和使用以及CAJviewer的安装 - 苗玉虎的博文...

    最近突然想使用caj软件看文献,发现linux不支持,so百度一下如何安装,搜到好多,但很多都很乱,遂记下自己的心路历程,以示记载,或许时间久了忘记,留个备份吧,也希望对他人有帮助. 下载好CAJvi ...

  10. linux的wine使用方法,Wine模拟器使用手册(转)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 3.2. 安装 Wine 而无须 Windows 编写:James Juran (提取自 wine/documentation/no-windows) W ...

最新文章

  1. 检测jQuery.js是否已加载的判断代码
  2. python 获取excel文件内sheet名称列表
  3. C++中的内联函数inline
  4. Android数据存储——2.文件存储_B_资源文件
  5. 使用PsPing测试Azure虚拟机的连通性
  6. vba传值调用_小白关于VBA调用Sub传递参数之传值与传址的思考
  7. CentOs7中安装sonarQube服务系列------2.安装postgresSql数据库
  8. TopHQBooks – PDF 搜索引擎 - 小众软件
  9. Struts2-EL表达式为什么能获取值栈数据
  10. 什么是阻塞和非阻塞?
  11. 【Chrome小技巧】Chrome浏览器如何实现下载速度加快?
  12. 敏捷开发-srcum
  13. esp8266教程:定时器之原理基础
  14. 【人人都是极客】精选文章汇总
  15. 1、串口(UART/COM/TTL/RS232/RS485)
  16. Duplicate Cleaner Pro v5.0.13 电脑重复文件查找清理工具
  17. 东南大学成贤学院计算机类怎么样,东南大学成贤学院什么专业比较好 怎么选择专业...
  18. 盘古开源:汽车芯片短缺怎样缓解?工信部回应热点问题
  19. 程序逸的Java项目之旅-图书管理系统之项目搭建
  20. 记录锁、间隙锁和临键锁

热门文章

  1. excel两列数据对比找不同_技巧不求人168期 Excel两列数据找不同的3种方法 Word快速更改文本排序...
  2. eclipse为什么文件夹路径真实存在但运行显示路径不存在
  3. 亚马逊卖家运营必备八大工具
  4. sloth(标点工具)使用说明
  5. 服务器蓝屏 查看系统日志文件,教你电脑查看系统蓝屏日志的具体方法
  6. Flutter语言开发的高仿抖音App源码
  7. MATLAB 中gcf、gca 以及gco三者的解析
  8. 轻仓的贵金属白银今日走势分析
  9. 收到谷歌实习邀请 “比被清华录取还激动”
  10. 【CF633H】Fibonacci-ish II 莫队+线段树