在WSL Ubuntu 20.04中并行安装.NET Core 2.1 SDK遇依赖冲突问题
在WSL Ubuntu 20.04中同时安装.NET 8和.NET Core 2.1 SDK的依赖冲突解决方案
问题场景
已在WSL Ubuntu 20.04环境中安装.NET 8,执行以下命令安装.NET Core 2.1 SDK时出现依赖错误:
执行的安装命令
- 启用Microsoft PPA
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb
- 安装.NET Core 2.1 SDK
sudo apt update sudo apt install apt-transport-https sudo apt install dotnet-sdk-2.1
错误信息(翻译后)
root@LP003060:/mnt/c/nitin/JavaCallCSharp_new# sudo apt install dotnet-sdk-2.1 正在读取软件包列表... 完成 正在构建依赖关系树... 完成 正在读取状态信息... 完成 无法安装某些软件包。这可能意味着您请求了一个不可能的情况,或者如果您使用的是不稳定发行版,某些所需的软件包尚未被创建或移出Incoming目录。 以下信息可能有助于解决问题: 下列软件包有未满足的依赖关系: dotnet-host-8.0 : 与 dotnet-host 冲突 dotnet-runtime-deps-2.1 : 依赖: libssl1.0.0 但无法安装或 libssl1.0.2 但无法安装或 libssl1.1 但无法安装 依赖: liblttng-ust0 但无法安装 E: 错误,pkgProblemResolver::Resolve 生成了破坏,这可能是由于持有软件包造成的。
解决方案
1. 处理dotnet-host冲突
.NET 8的dotnet-host-8.0和.NET Core 2.1依赖的dotnet-host存在版本冲突,直接指定安装.NET Core 2.1对应的host包,让apt自动处理兼容:
sudo apt install dotnet-host-2.1 dotnet-sdk-2.1 -y
2. 补全缺失的依赖包
Ubuntu 20.04默认源不再提供libssl1.1和liblttng-ust0,手动下载旧版本deb包安装:
安装libssl1.1
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.23_amd64.deb sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.23_amd64.deb
安装liblttng-ust0
wget http://archive.ubuntu.com/ubuntu/pool/main/l/lttng-ust/liblttng-ust0_2.11.0-1_amd64.deb sudo dpkg -i liblttng-ust0_2.11.0-1_amd64.deb
3. 重新安装.NET Core 2.1 SDK
依赖补全后,再次执行安装命令:
sudo apt install dotnet-sdk-2.1 -y
4. 验证安装结果
检查已安装的.NET SDK版本,确认两个版本共存:
dotnet --list-sdks
内容的提问来源于stack exchange,提问作者Nitin S
相关产品推荐
相关产品推荐

