wine学习笔记

目前 wine 版本为较为稳定的 8.0 版本,本文也是重点围绕 wine 8.0 安装、使用以及 wine 工具介绍等方面进行了学习和整理。

一、安装 wine

1. 如果你使用的是 64 位系统,需要先开启 32 bit 架构支持:

$ sudo dpkg --add-architecture i386 

architecture,指的是cpu体系架构,如64位的amd64,arm64。下面是一些关于架构方面的指令:

$ sudo dpkg  --print-architecture                                 #查看当前CPU体系架构:
$ sudo dpkg --add-architecture [ amd64 | i368 | arm64 | ...]      #开启或者说增加其他架构支持
$ sudo dpkg --print-foreign-architectures                         #查看开启的其他架构(非当前cpu体系架构)
$ sudo dpkg --remove-architecture [ amd64 | i368 | arm64 | ...]   #删除开启的其他架构

i386 = Intel 80386。通常被用来作为对Intel(英特尔)32位微处理器的统称。
amd64,又称“x86-64”或“x64”。是一种64位元的电脑处理器架构。它是建基于现有32位元的x86架构,由AMD公司所开发。

2. 信任来自 https://dl.winehq.org/ 的公钥:

$ sudo mkdir -pm755 /etc/apt/keyrings
$ sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key

上面的命令实现了将 https://dl.winehq.org/ 的公钥内容保存至 /etc/apt/keyrings/winehq-archive.key 文件。

3.添加仓库(以 ubuntu 22.04 为例):

方法一:添加 winehq 官方仓库(能保证版本为最新,但不能保证下载速度)

$ sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources

方法二:从镜像站添加仓库,如清华大学开源镜像站(不能保证版本为最新,但应该能保证下载速度)

清华大学开源镜像站只同步了 ubuntu/debian 部分,因此其他发行版不适用。在 /etc/apt/sources.list.d/ 目录中新增一个源列表文件 winehq.list,内容为

deb [arch=amd64,i386 signed-by=/etc/apt/keyrings/winehq-archive.key] https://mirrors.tuna.tsinghua.edu.cn/wine-builds/ubuntu/ jammy main

4. 更新源列表

$ sudo apt update

5. 安装 wine

$ sudo apt install --install-recommends winehq-stable

这里选择安装的是稳定分支 (winehq-stable),可以根据需要选择开发分支 (winehq-devel) 或Staging 分支 (winehq-staging)

二、wine 的使用

1. 重要的 2 个环境变量

(1) WINEARCH 环境变量

WINEARCH 环境变量指的是容器所模拟的cpu体系架构,对应的值为 win32 及 win64,如果你的系统是 64 位系统,一般默认为 win64。目前 wine 容器在64位系统下其稳定性是远远低于 32 位系统的。

(2) WINEPREFIX 环境变量,容器路径,默认为 ~/.wine

WINEPREFIX 环境变量表示容器的路径,默认为 ~/.wine。wine 会在所指定的容器路径~/.wine下创建drive_c/等几个文件(夹),其中包含了Windows环境配置、它的C盘文件等等。建议把不同的 Windows 程序分给不同的 WINEPREFIX,便于打包和隔离。只是当你要启动这个 Windows 程序前也需要设置正确的 WINEPREFIX。

2.wine 配置命令(初次使用必须配置)

$ winecfg

上面的命令使用的是默认的环境变量配置 wine 的配置,它将在你的家目录中创建一个隐藏文件夹(.wine),该文件夹下包含类似于在 Windows 中的虚拟 C:驱动器以及注册表文件。一旦该目录中创建完,wine配置窗口将出现。该窗口将允许您定制wine的各种设置,其中包括Windows版本,DLL替换,显示设置,驱动器映射,以及应用程序的特定设置。单击OK按钮关闭该窗口。

wine 首次初始配置时会要求下载插件 wine-mono(.net 开源方案)和 wine-gecko(ie HTML开源方案) ,但通过初始配置窗口去下载会很慢,可以在初始设置前从网速快的镜像下载并安装
http://mirrors.ustc.edu.cn/wine/wine/wine-mono/
http://mirrors.ustc.edu.cn/wine/wine/wine-gecko/

因为 winecfg 命令使用的环境变量是默认的也就是容器路径为~/.wine,架构为物理系统的架构,通常是 win64,如果我们想要使用自定义的环境变量,可以使用类似下面的命令:

$ WINEARCH=win32 WINEPREFIX=~/.wine-new winecfg

这条命令配置的容器,其容器路径是 ~/.wine-new,架构是 win32。

3.安装 Windows 程序

  • 从某个地址下载Windows应用程序.exe(可执行文件)
  • 把它放在一个方便的目录(例如,桌面或个人文件夹)
  • 打开终端,并且切换到.exe文件所在的目录
  • 输入命令 wine appname.exe (例如: wine QQ.exe)

这将使用Wine启动.EXE。如果它是一个安装程序,它应该像在windows一样的运行。如果应用程序要求的目录来安装应用程序,选择把它放在 C:\Program Files 。

以 WinRAR 为例安装(为深入理解容器概念,我使用上一步自定义初始化的一个容器路径来进行操作,下同):

(1) 首先去官网下载32位的安装包 winrar-x32-611scp.exe

(2) 打开终端,切换到安装包所在路径,输入如下命令:

$ WINEPREFIX=~/.wine-new wine wine-gecko-2.47.3-x86.msi
$ WINEPREFIX=~/.wine-new wine winrar-x32-611scp.exe

wine学习笔记_第1张图片

4.运行 Windows 程序

(1) 使用命令直接打开:

$ wine [start] 程序路径/程序名.exe 参数

根据Windows约定,一般程序将默认安装在虚拟Windows驱动器(WINEPREFIX/drive_c)里面Program Files下的某处。

这里的程序路径有 2 种表示方法:

  • a.容器内程序的路径(需指定容器路径,否则默认为~/.wine)
$ WINEPREFIX=~/.wine-new wine "c:/Program Files/WinRAR/WinRAR.exe"
  • b.物理系统内程序的路径
$ wine ~/.wine-new/drive_c/Program\ Files/WinRAR/WinRAR.exe

(2) 通过 winefile 命令打开 wine 文件管理器,然后定位到所需程序,双击打开。

$ WINEPREFIX=~/.wine-new winefile

wine学习笔记_第2张图片

(3) 创建桌面快捷方式

在桌面上创建一个"程序名.desktop"的文件,添加可执行权限(chmod +x 程序名.desktop),内容编辑格式大体如下:

[Desktop Entry]
Name=程序名(WinRAR)
Exec=env WINEPREFIX="容器路径(/home/hollowman/.wine-new/)" wine "wine容器内的程序路径(C:\Program Files\WinRAR\WinRAR.exe)"
Type=Application
StartupNotify=true
Path=程序实际路径(/home/hollowman/.wine-new/dosdevices/c:/Program Files/WinRAR)
Icon=桌面图标路径()
StartupWMClass=程序名.exe(WinRAR.exe)

5.有关 wine 的命令

通过dpkg -L winehq-stable | grep bin可以大概了解wine有哪些二进制命令(这里的 winehq-stable 是我安装的 wine 版本,一般输入 wine 按 tab 补齐就可知道你安装了哪个wine)

$ dpkg -L winehq-stable | grep bin
/usr/bin
/usr/bin/function_grep.pl
/usr/bin/msidb
/usr/bin/msiexec
/usr/bin/notepad
/usr/bin/regedit
/usr/bin/regsvr32
/usr/bin/widl
/usr/bin/wine
/usr/bin/wine-preloader
/usr/bin/wine64
/usr/bin/wine64-preloader
/usr/bin/wineboot
/usr/bin/winebuild
/usr/bin/winecfg               
/usr/bin/wineconsole
/usr/bin/winecpp
/usr/bin/winedbg
/usr/bin/winedump
/usr/bin/winefile
/usr/bin/wineg++
/usr/bin/winegcc
/usr/bin/winemaker
/usr/bin/winemine
/usr/bin/winepath
/usr/bin/wineserver
/usr/bin/wmc
/usr/bin/wrc

解释几个命令

$ winecfg              #wine配置窗口
$ wine regedit         #注册表
$ wine control         #控制面板
$ wine notepad         #记事本
$ wineconsole          #cmd终端窗口
$ winefile             #文件管理器
$ wine uninstaller     #卸载面板
$ winemine             #扫雷游戏

三、wine 的可视化工具

1.winetricks

介绍: 带点官方性质的wine的配置工具。

源码网站: https://github.com/Winetricks/winetricks

如何安装: 可以通过 apt 来安装。

$ sudo apt install winetricks

2.winetricks-zh

介绍: 国人维护的 winetricks 的修改版,添加了一些国内常用的 windows 应用支持,以弥补 winetricks 对国内应用支持不足的情况。

源码网站: https://github.com/hillwoodroc/winetricks-zh

如何安装:

(1) 下载源码,并解压缩

(2) 在该目录下打开终端,输入如下命令

sudo cp winetricks-zh /usr/bin/  
sudo cp icon/winetricks-zh.svg /usr/share/icons/hicolor/scalable/apps/  
sudo cp winetricks-zh.desktop /usr/share/applications/  

如何使用:

$ winetricks-zh  #或者直接在应用程序菜单里面点击 winetricks-zh 来启动。

注意,该命令默认的容器路径是~/.wine,如果希望用其他的默认容器路径,同样需要在命令前面增加设置WINEPREFIX变量的语句 WINEPREFIX=~/.wine-new

3.wine 运行器

由网名为 gfdgd xi、为什么您不喜欢熊出没和阿布呢 制作的一个基于 wine 的可视化工具,他们对这个软件的定位是:

Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序,内置了对Wine图形化的支持、各种Wine工具、自制的Wine程序打包器和运行库安装工具等。
它同时还内置了基于VirtualBox制作的、专供小白使用的Windows虚拟机安装工具,可以做到只需下载系统镜像并点击安装即可,无需考虑虚拟机的安装、创建、分区等操作。
此外,它还简化了如下命令,让你可以更简便地使用Wine:env WINEPREFIX=容器路径 wine(wine的路径) 可执行文件路径 让你可以简易方便的使用 wine。

该程序的官网有:
https://gitee.com/gfdgd-xi/deep-wine-runner
https://github.com/gfdgd-xi/deep-wine-runner
https://www.gitlink.org.cn/gfdgd_xi/deep-wine-runner
https://gfdgd-xi.github.io

程序Wiki: http://gfdgdxi.i.racoongx.cn/wine-runner-wiki/

程序界面:

wine学习笔记_第3张图片

四、如何干净卸载 wine

sudo apt remove wine wine64 wine32 winetricks winetricks-zh
cd ~
rm -rf .wine/
rm -rf .local/share/applications/wine/
cd .local/share/mime/
rm .local/share/mime/types
rm .local/share/mime/globs2
rm .local/share/mime/packages/x-wine-extension-*
rm .local/share/mime/application/x-wine-extension-*
rm -rf .config/menus/applications-merged/            #删除程序图标快捷方式
rm -rf .local/share/wineprefixes/                    #删除自己创建的wineprefixes(wine容器)
update-mime-database ~/.local/share/mime             #更新文件类型数据库

官方文档参考:

winehq wiki: https://wiki.winehq.org/FAQ
Wine_User’s_Guide: https://wiki.winehq.org/Wine_User’s_Guide

你可能感兴趣的:(Linux学习,其他,学习,ubuntu,linux,容器,wine)