用Cygwin在Windows 10上运行部分Wine应用
笔者某次无聊,产生了这个奇怪的想法,经过查询Wine网站相关资料之后,发现是可行的,就试了试,结果也成功了。
如果你没有接触过Wine和Cygwin,你会觉得很奇怪,这有什么稀奇的,不就是跑个程序么,其实不然,首先允许我介绍以下Cygwin和Wine是什么:
1.Cygwin是一款在Windows 10等系统上实现类Linux的兼容层,它类似于著名的Bash on Windows,但比这个出现要早得多。
2.Wine,它是一款在Unix/Linux/macOS之类的类Unix系统上实现Windows兼容的兼容层。
这么说来,笔者今天的操作就是在Windows操作系统上通过Linux兼容层跑在Linux上实现Windows兼容的兼容层。
好了,进入正文。
你需要准备下面三样:
1. Windows操作系统。
2. Cygwin 32位(64位经测不成功,原因未知)
3. Wine源码(中科大开源镜像站上面有)
1.安装Cygwin
前面几个窗口点击下一步就可以。由于这只是一次体验,所以建议您把Cygwin安装在机械硬盘上,因为机械硬盘空间大而且没有必要因为临时安装一次Cygwin(如果您指示为了玩Wine应用而安装Cygwin的话)而浪费SSD?的擦写寿命。
到这里选择镜像的时候,请选择国内的镜像源,这样速度比较快。笔者这里选择的是中科大的镜像源。输入https://mirrors.ustc.edu.cn/cygwin,然后点击Add.
2.安装可选组件
WineHQ Wiki的“Cygwin? and More”页面已经告诉了我们应该安装什么样的组件,按照要求安装即可。
You'll want at least the following modules from Cygwin's setup.exe:
audio/libgsm-devel
devel/bison
devel/ccache (for Regression Testing)
devel/flex
devel/gcc
devel/gettext-devel
devel/gnutls-devel
devel/libjpeg-devel
devel/liblcms2-devel
devel/libncurses-devel
devel/libpng-devel
devel/make
devel/openldap-devel
devel/patch
devel/pkg-config
graphics/libtiff-devel
libs/libtiff-devel
libs/libxml2-devel
libs/libxslt-devel
system/libdbus1-devel
utils/patchutils
X11/libfontconfig-devel
X11/libX11-devel
不过需要注意的是,这篇页面距今时间有点长,所说的一些组件不一定在页面所描述的分类中,请自行使用Cygwin安装窗口里的search功能进行组件选择。devel里面的组件多而杂,而且gcc没有同名,所以笔者为了省事,把devel整个勾上了install。
点击数个下一步,等待安装结束即可。
3.编译wine
解压Wine源码到文件夹。
打开Cygwin终端,定位到源码文件夹。
输入mkdir ../wine-build,在源码文件夹的上一个目录中建立编译文件夹。
再输入cd ../wine-build,定位到编译文件夹。
运行../<源码文件夹名称>/configure,进行configure。相当一部分开源软件在编译时都需要进行configure以进行初步配置。
结束,我们开始正式编译。
输入make libs/* -j
输入make programs/* -j
这两个命令需要等待一段时间。
结束之后,请在Windows资源管理器中打开编译文件夹,然后在programs文件夹中搜索*.exe,将这个复制到cygwin安装目录中的/usr/local/bin文件夹,在Lib?文件夹中找到libwine.dll,将其复制到cygwin安装目录中的bin文件夹。
这样的话,Wine的部分应用就可以在Windows上跑了。不过,毕竟Cygwin不是原生的Linux环境,所以一些应用,比如regedit、winecfg等是无法跑的,这一点需要注意。
Wine的写字板,算是Windows写字板的开源实现。
还记得吗?这是Windows 3.x的时钟程序,Wine也有开源版本。
参考资料:
1. https://wiki.winehq.org/Cygwin_and_More#Wine_on_Cygwin
2. https://wiki.winehq.org/Building_Wine