1

我正在尝试在 openSuse 中开发 .NET Core。我确实安装了 SDK 和教程中的所有内容。现在,当我尝试运行dotnet new console命令时,出现此错误:

找不到可用的 libssl 版本

中止(核心转储)

我找到了这个答案:(.NET Core 2.1 SDK Linux x64 No usable version of the libssl was found),但没有得到解决问题的方法。他们似乎是 deep-linuxer(我不是,我只是想学习 linux)。知道如何运行命令吗?

更新:系统信息:

openSUSE Leap 15.0

内核版本4.12.14-lp150.12.22-default

操作系统类型:64-bit

4

4 回答 4

6

可以安装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 不应再出现此问题。

于 2018-11-08T18:39:58.043 回答
6

当 dotnet 正常工作时,我在 Ubuntu 20.04 上运行 sqlpackage 时遇到了同样的问题。

dotnet 是通过 apt 和 sqlserver 分发的,但由于某些原因,sqlpackage 在此处通过 zip 分发(https://docs.microsoft.com/en-us/sql/tools/sqlpackage-download?view=sql-server- ver15 ) 并且仍然受到缺少 libssl1.0 的影响。

解决了

wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.6_amd64.deb
sudo dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.6_amd64.deb
于 2020-06-03T13:03:03.500 回答
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)
于 2019-05-08T10:31:35.767 回答
-1

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

对于 raspberry pi / debian,它完全需要 libssl 1.0.2,仅此而已。

sudo apt-get install libssl1.0.2

应该为 pi 解决问题!我无法与其他变体交谈。

于 2019-07-27T13:26:33.363 回答