openSuse中的`dotnet new command`导致`没有找到libssl的可用版本`错误

问题描述 投票:1回答:2

我正在尝试在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

linux .net-core opensuse libressl
2个回答
4
投票

你能安装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不再出现此问题。


1
投票

使用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)

0
投票

我在github中查找“找不到可用的libssl版本”。您可以在C中找到.Net核心安全库的许多变体,每个变量都有非常特定的dll加载,用于精确的libssl库,尽管在许多方面命名不同,但所有内容都必须完美匹配。

对于raspberry pi / debian,它完全想要libssl 1.0.2,没有别的。

sudo apt-get install libssl1.0.2

应该为pi做的伎俩!我不能和其他变种说话。

© www.soinside.com 2019 - 2024. All rights reserved.