Linux `openSuse中的dotnet new命令`导致`找不到可用版本的libssl`错误

Linux `openSuse中的dotnet new命令`导致`找不到可用版本的libssl`错误,linux,.net-core,opensuse,libressl,Linux,.net Core,Opensuse,Libressl,我正试图在openSuse中开发.NET内核。我确实安装了SDK和教程中的所有内容。现在,当我尝试运行dotnet new console命令时,出现以下错误: 找不到可用版本的libssl 中止(堆芯转储) 我找到了这个答案:(),但并没有得到我应该做什么来解决这个问题。它们似乎是很深的linuxer(我不是,我只是想学习linux)。你知道如何运行这个命令吗 更新:系统信息: openSUSE Leap 15.0 内核版本4.12.14-lp150.12.22-default 操作系统类型:

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

找不到可用版本的libssl

中止(堆芯转储)

我找到了这个答案:(),但并没有得到我应该做什么来解决这个问题。它们似乎是很深的linuxer(我不是,我只是想学习linux)。你知道如何运行这个命令吗

更新:系统信息:

openSUSE Leap 15.0

内核版本
4.12.14-lp150.12.22-default


操作系统类型:
64位

能否安装
libopenssl1\u 0\u 0
软件包。NetCore应该拿起它并使用它

对于好奇的人,有一个稍微长一点的解释:

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\u 0\u 0
。然后.NETCore会找到它,将其提取并自动使用


编辑:自2019年3月起,不需要这样做。我们已经更新了.NETCore2.1及更高版本,以使用OpenSSL 1.1或1.0(任何可用的)。因此,在最近发布的.NETCore中,这个问题不应该再发生了

能否安装
libopenssl1\u 0\u 0
软件包。NetCore应该拿起它并使用它

对于好奇的人,有一个稍微长一点的解释:

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\u 0\u 0
。然后.NETCore会找到它,将其提取并自动使用


编辑:自2019年3月起,不需要这样做。我们已经更新了.NETCore2.1及更高版本,以使用OpenSSL 1.1或1.0(任何可用的)。因此,在最近发布的.NETCore中,这个问题不应该再发生了

使用sqlpackage工具()时,在Fedora 30(安装了compat-openssl10)上仍然可以获得此功能

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)

使用sqlpackage工具()时,在Fedora30(安装了compat-openssl10)上仍然可以看到这一点

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安装libssl1.0.2

应该为pi做这个把戏!我无法与其他变体对话。

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

对于raspberry pi/debian来说,它只需要libssl 1.0.2,其他什么都没有

sudo apt get安装libssl1.0.2


应该为pi做这个把戏!我无法与其他变体对话。

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

dotnet是通过apt和sqlserver分发的,但由于某些原因,sqlpackage是通过zip here()分发的,并且仍然受到缺少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

当dotnet正常工作时,我在Ubuntu20.04上运行sqlpackage时遇到了同样的问题

dotnet是通过apt和sqlserver分发的,但由于某些原因,sqlpackage是通过zip here()分发的,并且仍然受到缺少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

您的openSUSE安装的版本号是多少@莱克斯利我在问题中添加了系统信息。但是已经安装了
openssl
。似乎
dotnet
找不到它。您的openSUSE安装的版本号是多少@莱克斯利我在问题中添加了系统信息。但是已经安装了
openssl
。似乎
dotnet
找不到它。这不起作用。它安装,.netcore应用程序启动并工作,但一旦您建立SSL连接,它将抛出一个
HttpRequestException
,消息为“无法建立SSL连接”,内部异常中有大量关于原因的信息。这不起作用。它安装,.netcore应用程序启动并工作,但一旦您建立SSL连接,它将抛出一个
HttpRequestException
,消息为“SSL连接无法建立”,内部异常中有大量关于原因的信息。这对我很有帮助。已安装openssl,但未在b中使用