我正在尝试在openSuse中开发.NET Core。我确实在教程中安装了SDK和所有内容。现在,当我尝试运行dotnet new console
命令时,我收到此错误:
找不到可用的libssl版本
中止(核心倾倒)
我找到了这个答案:( .NET Core 2.1 SDK Linux x64 No usable version of the libssl was found),但没有得到我应该怎么做才能解决问题。他们似乎是深度linuxer(我不是,我只是想学习linux)。知道如何运行命令吗?
更新:系统信息:
openSUSE Leap 15.0
内核版本4.12.14-lp150.12.22-default
操作系统类型:64-bit
你能安装libopenssl1_0_0
套餐吗? .NET Core应该选择并使用它。
对于任何好奇的人来说,稍微长一点的解释:
OpenSSL是Linux上最常用的加密库之一。它有多个版本。版本1.0有点旧,但使用频繁。 1.1是(相对)最近发布的较新版本。 1.0和1.1不兼容。期望1.0的应用程序无法针对1.1构建,也不能针对它运行。
.NET Core 2.1和所有早期版本仅支持OpenSSL 1.0。
许多Linux发行版开始使OpenSSL 1.1成为新的默认设置。但是他们中的大多数仍然拥有1.0的包。所以你只需要找到并安装它。在Fedora上它是compat-openssl10
。对于openSuSE,它是libopenssl1_0_0
。然后.NET Core会找到它,拿起并自动使用它。
编辑:截至2019年3月,这不应该是必需的。我们更新了.NET Core 2.1及更高版本以接收和使用OpenSSL 1.1或1.0(无论可用)。因此,最新版本的.NET Core不再出现此问题。
使用sqlpackage工具(https://docs.microsoft.com/en-us/sql/tools/sqlpackage-download?view=sql-server-2017)时,仍然可以在Fedora 30上安装compat-openssl10。
$ dotnet --info
.NET Core SDK (reflecting any global.json):
Version: 2.2.203
Commit: e5bab63eca
Runtime Environment:
OS Name: fedora
OS Version: 30
OS Platform: Linux
RID: linux-x64
Base Path: /usr/share/dotnet/sdk/2.2.203/
Host (useful for support):
Version: 2.2.4
Commit: f95848e524
.NET Core SDKs installed:
2.2.203 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.2.4 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.2.4 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.2.4 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
Dotnet在它自己的工作正常。但是运行sqlpackage不起作用:
$ sqlpackage /tsn:localhost /tu:xx /tp:yyy /A:Import /tdn:mydb /sf:mydb.bacpac
Importing to database 'mydb' on server 'localhost'.
No usable version of the libssl was found
Aborted (core dumped)
我在github中查找“找不到可用的libssl版本”。您可以在C中找到.Net核心安全库的许多变体,每个变量都有非常特定的dll加载,用于精确的libssl库,尽管在许多方面命名不同,但所有内容都必须完美匹配。
对于raspberry pi / debian,它完全想要libssl 1.0.2,没有别的。
sudo apt-get install libssl1.0.2
应该为pi做的伎俩!我不能和其他变种说话。