openSuse中的“ dotnet新命令”导致“未找到可用的libssl版本”错误

时间:2018-11-04 10:00:51

标签: linux .net-core opensuse libressl

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

4 个答案:

答案 0 :(得分:4)

您可以安装libopenssl1_0_0软件包吗? .NET Core应该可以使用它。

对任何有好奇心的人加长一点的解释:

OpenSSL是Linux上最常用的加密库之一。它有多个版本。 1.0版有点旧,但使用率很高。 1.1是(相对)最近发布的较新版本。 1.0和1.1不兼容。期望1.0的应用程序无法针对1.1构建,也无法针对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 :(得分:3)

当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://de.archive.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.3_amd64.deb
sudo dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.3_amd64.deb

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

对于树莓派/ debian,它只需要libssl 1.0.2,

  

sudo apt-get install libssl1.0.2

应该为pi做花招!我不能说其他的变种。