Ubuntu 22.04 下使用 Winetricks 安装 dotnet45 失败求助
Ubuntu 22.04 下使用 Winetricks 安装 dotnet45 失败求助
问题描述
我在Ubuntu系统上已经安装了Wine 8.0.2,之前也配置好了winetricks,但执行命令winetricks -q dotnet45时遇到了报错,终端输出如下:
Executing mkdir -p /home/ubuntu ------------------------------------------------------ warning: You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug. ------------------------------------------------------ Using winetricks 20210206 - sha256sum: 0f21da98811e0bfda16a7d6d6b8e860a9cedbd4e836c7dd9b02f068d3092ee2e with wine-8.0.2 and WINEARCH=win64Executing w_do_call dotnet45Executing mkdir -p /home/ubuntu ------------------------------------------------------ warning: You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug. ------------------------------------------------------ Executing load_dotnet45 ------------------------------------------------------ warning: This package (dotnet45) is broken in wine-8.0.2. Broken since 5.18. See https://bugs.winehq.org/show_bug.cgi?id=49897 for more info. Use --force to try anyway. ------------------------------------------------------
我知道安装会崩溃,但找遍了各种渠道都没找到解决办法,想请教各位大佬怎么处理这个问题?
解决方案
嗨,我之前也碰到过类似的坑,给你几个实用的思路试试:
强制安装尝试:按照报错提示,先试试加
--force参数强制安装,执行命令:winetricks -q --force dotnet45不过这个方法不一定百分百成功,毕竟官方已经明确标注这个包在Wine 5.18之后就损坏了,但可以先碰碰运气。
降级Wine版本:既然dotnet45在Wine 5.18之后就无法正常安装了,咱们可以降级到5.18之前的稳定版,比如Wine 5.0系列。具体步骤大概是:
- 先移除当前的Wine版本:
sudo apt remove --purge wine* - 通过WineHQ源安装指定旧版本,比如5.0.3:
sudo apt install winehq-stable=5.0.3~focal-1 - 重新初始化WINEPREFIX(或者用原来的),再执行winetricks安装dotnet45,这个方法大概率能解决问题。
- 先移除当前的Wine版本:
改用32位WINEPREFIX:报错里也提到了64位前缀的兼容性问题,很多winetricks的包只支持32位环境,咱们可以新建一个32位前缀来安装:
- 创建32位专属前缀:
WINEARCH=win32 WINEPREFIX=~/.wine_dotnet45 winecfg - 切换到这个前缀执行安装:
WINEPREFIX=~/.wine_dotnet45 winetricks -q dotnet45 - 如果后续需要运行依赖dotnet45的程序,记得指定这个32位前缀启动。
- 创建32位专属前缀:
如果这些方法都不行,也可以考虑用其他替代方案,比如改用.NET Core的Linux版本,或者寻找不需要依赖dotnet45的替代软件。
备注:内容来源于stack exchange,提问作者suborno das
相关产品推荐
相关产品推荐

