docker与wine环境配置
docker与wine环境配置
因为最近感觉家里的nuc有点过于闲置了,浪费了性能,所以想着充分利用起多余的性能出租几个面板服赚点域名/vps钱,一开始只开了Minecraft基岩版服务器,不过想着最近泰拉瑞亚玩的人也挺多的,所以不如再开一个泰拉瑞亚的面板服,现在查看官网https://terraria.org/发现居然有了手机版的[专用服务端](https://terraria.org/server/MobileTerrariaServer.zip)了(上次看的时候还没有的来着),不过服务端写着 Mobile Dedicated Server for Windows ,只有Windows能用吗…虽然我也运行了一个Windows server的虚拟机,但是由于面板运行在Linux上,所以能够直接在Linux上运行该服务端就更好了,所以想到能不能用wine来运行该服务端呢?
折腾了半天,也没有成功,wine一直无法安装上dotnet与xna运行环境,暂时搁置,这篇文章暂时记录一下docker和wine环境的配置。
创建ubuntu docker
为了安全起见(面板中运行的东西不会破坏到宿主机)以及便于迁移/删除,我觉得使用docker来运行。
1 | docker pull ubuntu |
配置环境
安装wine
我的系统是Ubuntu20.04,安装的wine版本是wine5.0,不过在首次执行wine TerrariaServer.exe会提示需要使用wine32运行,而默认安装的是win64,只需要按照它提示的命令安装wine32即可。
注意,之前我是从apt源中安装的wine但是出了很多错误,比如缺少wine-mono之类的,直接安装也会出错,之后我改用从官网的源里面安装wine
查看winehq官网 https://wiki.winehq.org/Ubuntu_zhcn
如果您之前使用过来自发行版自己打包的安装包,您会发现它们和 WineHQ 提供的有以下不同:
文件被安装在 /opt/wine-devel 或 /opt/wine-staging。
没有为 Wine 的内置程序(winecfg 等等)创建菜单项,并且如果您是从发行版自己打包的安装包升级上来的,原来的菜单项也会被删除。您可以使用菜单编辑器自己再次创建。
没有添加 Binfmt_misc 注册项。如果您想手动添加,请查看您使用的发行版关于 update-binfmts 的文档。
WineHQ 当前没有提供 wine-gecko 和 wine-moon 的安装包。所以当创建新的 wine 配置目录时,您将会被询问是否下载这些组建。为了得到更好的兼容性,我们建议您选择“安装”。如果下载过程发生出错,请查看 Gecko 和 Mono 的 wiki 页面来进行手动安装。
从 Wine 5.7 开始,WineHQ 的 Ubuntu 安装包有一个 debconf 选项用于开启 CAP_NET_RAW 以兼容需要发送和接收 raw IP 包的应用程序。由于具有潜在的安全风险,并且大多数应用程序不需要该功能,该功能默认被关闭。需要该功能运行应用程序的用户可以在安装 Wine 之后运行
使用官方的方法
1 | sudo dpkg --add-architecture i386 |
使用该方法安装的wine版本是4.0.4。实测当前ubuntu20.04安装devel分支的话无法启动。
由于直接启动的话安装mono和gecko环境过于缓慢,所以我采取了手动下载对应的wine-mono 以及gecko的方法。
在/opt/wine-stable/share路径下分别新建 mono文件夹和gecko文件夹,并从中科大的镜像http://mirrors.ustc.edu.cn/wine/wine下载这两个对应的依赖放到文件夹中,再次启动就不会卡在下载了。
参考
- 本文标题:docker与wine环境配置
- 本文作者:aoyouer
- 本文链接:https://i.notesai.com/posts/docker-wine-env.html
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!


