1 Star 0 Fork 11

coder_lw / wiki

forked from deepinwiki / wiki 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
怎么用wine运行windows程序.md 7.17 KB
一键复制 编辑 原始数据 按行查看 历史

怎么用wine运行windows程序

前言

linux使用windows程序有两个途径,一个是虚拟机,性能比较差,而且带一个虚拟桌面,感觉不太像是独立的应用程序。另一个方法是用wine。wine 不是虚拟机,它是实现了windows底层api,进而兼容windows程序,这听上去是一个庞大而不太可能实现的工程,但是wine确实做的不错。

QQ和微信,迅雷这种经典的windows应用,都能够借助wine比较顺利的运行,虽然有一些bug,但至少能用。

安装wine

sudo dpkg --add-architecture i386 #支持i386架构
wget -nc https://dl.winehq.org/wine-builds/winehq.key #下载公钥
sudo apt-key add winehq.key #安装公钥

sudo nano /etc/apt/sources.list #修改apt安装源,增加一条:deb https://dl.winehq.org/wine-builds/debian/ stretch main 
#这个是兼容debian 9的源

sudo apt update #获取源的更新信息
sudo apt install winehq-staging #安装最新版

WINEARCH=win32 winecfg #运行wine配置管理器,针对每一个exe程序可以定制相关环境配置 ,环境变量WINEARCH=win32指示程序创建wine32位环境,兼容性更高。 第一次运行winecfg会配置一个默认的windows环境,在~/.wine/目录下,用户可以进入这个目录定制环境,比如添加字体之类的。

wine 设置

# 运行windows程序的步骤
# 1. 当你下载windows程序,一般chrome会下载到/home/username/Downloads,username是你当前账号名字。比如我这里现在的是7z1900.exe,是一个比较流行的压缩解压缩程序。
cd ~/Downloads #进入Downloads目录
wine 7z1900.exe #执行,并默认安装

# 2. 安装了的程序到哪里了呢?它在你用户目录,即/home/username/下面的.wine隐藏目录内。
# 这个目录里面有dosdevices  drive_c  system.reg  userdef.reg  user.reg 这几个文件,其中drive_c就是模拟windows的c盘。windows程序一般默认安装在c盘下面的“Program Files"目录下。
cd ~/.wine/drive_c/"Program Files"/7-Zip #进入7-zip目录

wine 7zFM.exe #运行windows程序,经测试,7-zip可以运行(因为比较简单),下面测试稍微复杂的程序

7-zip

安装微信

# 
# 1.下载,https://pc.weixin.qq.com/,下载WeChatSetup.exe ,然后安装

wine control #打开wine的小控制面板,然后安装WeChatSetup即可

控制面板

winefile 这个命令可以打开一个文件管理器,可以直接浏览文件夹,运行windows程序。

文件管理器

# 微信并不是完美的,需要解决几个问题:
#1. 边框黑边问题,这个问题在lxde桌面中才会出现。

sudo apt install xcompmgr #Xcompmgr是一个简单的混合窗口管理器,可以实现阴影、原生窗口透明(配合transset工具)等特效。安装这个即可解决窗口黑边的问题。

#2. 输入框不能显示输入文字的方法
# 这个问题有两个原因,一个是winehq-staging 4.4版有bug。

sudo apt autoremove winehq-staging #删除wine4.4版,有bug
sudo apt install winehq-stable # 当前版本是wine 4,稳定版本,没有这个bug

#有一个组件riched20.dll有问题,只能下载win7版本,放在程序运行目录下,然后设置程序让其使用原生dll,而不首先使用内置dll即可

winecfg

winecfg

#安装完毕之后,能够显示英文,但是中文会变成方框,这是因为字体不存在的远古。但是奇妙的是,发出去的汉字就能显示出来。解决方案是参考 “参考 2“的链接,用替代字体来解决这个问题

sudo apt install fonts-wqy-microhei #安装一种常见的开源字体,文泉驿微米黑wqy-microhei,然后用这个字体名字替换wine 注册表

wine regedit #wine注册表,开启之后,修改即可

#当然,更简单的方法,就是复制字体到windows/fonts目录中即可。

注册表

"Lucida Sans Unicode"="wqy-microhei.ttc"
"Microsoft Sans Serif"="wqy-microhei.ttc"
"MS Sans Serif"="wqy-microhei.ttc"
"Tahoma"="wqy-microhei.ttc"
"Tahoma Bold"="wqy-microhei.ttc"
"SimSun"="wqy-microhei.ttc"
"Arial"="wqy-microhei.ttc"
"Arial Black"="wqy-microhei.ttc"
#还有几个小问题,不影响使用
#3. 缩小按钮无效
#4. 置顶按钮无法关闭
#5. ibus输入法不跟随
#6. 图标丢失

安装QQ

#qq 的安装和微信差不多,同样也有riched20.dll的问题,参考微信即可,安装最新版qq也是可以用的,就是感觉bug比较多,窗口莫名其妙有一些怪异,尽量使用旧版本吧。

winetricks-zh

经测试,自己安装常用的国产软件,经常有各种bug,通过配置手段可以解决一部分问题,而每个软件的解决方法都不一样,这就要求安装软件者需要一定的经验。因此,winetricks这个软件就应运而生,它是别人配好的解决方案。原理是这样的:

  1. 在~/.local/share/wineprefixes/目录下建立单个应用程序的环境,比如QQ会在上面建立一个QQ的wine完整环境。
  2. 快捷方式: env WINEPREFIX=~/.local/share/wineprefixes/qq wine "/home/htqxw/.local/share/wineprefixes/qq/drive_c/Program Files (x86)/Tencent/QQ/Bin/QQ.exe" 。也就是建立一个环境变量,通过这个信息告诉wine指向该上下文环境,然后运行。

具体怎么做?

  1. 下载https://github.com/hillwoodroc/winetricks-zh
  2. 设置好运行权限 chmod +x winetricks-zh
  3. 执行 winetricks-zh 会弹出对话框,让你选择各种功能
  4. 安装一个应用,等于生成一套wine环境
  5. 我安装它并没有生成快捷方式,因此自己弄好对应的快捷方式,经测试qq可以运行,比较完美,就是切换窗口有点卡,这点不如deepin自带的qq。安装的qq版本是:QQ8.9.4(21603)。winecfg的函数库设置是:ntoskrnl.exe(停用)、riched20(原装先于内建)、txplatform.exe(停用)。

deepin-wine

国内deepin优化后的wine版本,可以比较完美的使用qq,微信等常见windows程序。除了安装deepin,其他系统也可以借助第三方体验deepin-wine:

  1. debian10 :https://github.com/yachen4ever/DeepinWine_Debian_Buster

其他

  1. wine 运行windows程序
  2. winecfg 设置管理
  3. winefile 文件管理器
  4. wine regedit 注册表
  5. wine control 控制面板
  6. winemine 扫雷
  7. winetricks 组件下载器
  8. winetricks-zh 中国版组件下载器,里面有qq等常用软件

参考

  1. wine官方文档: https://wiki.winehq.org/Wine_User%27s_Guide
  2. wine没有字体的方案:https://blog.csdn.net/gzj2013/article/details/85236433
  3. winetricks : https://www.cnblogs.com/jikexianfeng/p/5769430.html
  4. winetricks-zh: https://github.com/hillwoodroc/winetricks-zh
  5. 20170506-WineQQ8.9.1安装教程和常见问题解决方法: https://www.ubuntukylin.com/ukylin//archiver/?tid-30490.html&page=1
  6. DeepinWine_Debian_Buster: https://github.com/yachen4ever/DeepinWine_Debian_Buster
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/coder_lw/wiki.git
git@gitee.com:coder_lw/wiki.git
coder_lw
wiki
wiki
master

搜索帮助