`dotnet new command` в openSuse вызывает` Ошибка: не найдена используемая версия libssl`

Я пытаюсь разработать.NET Core в openSuse. Я установил SDK и все в учебниках. Теперь, когда я пытаюсь бежать dotnet new console Команда, я получаю эту ошибку:

Не найдена полезная версия libssl

Прервано (ядро сброшено)

Я нашел этот ответ: ( .NET Core 2.1 SDK Linux x64 Не удалось найти пригодную для использования версию libssl), но не получил то, что я должен сделать, чтобы решить проблему. Кажется, они глубоко-linuxer (а я нет, я просто пытаюсь изучить linux). Есть идеи, как запустить команду?

ОБНОВЛЕНИЕ: Информация о системе:

openSUSE Leap 15.0

Версия ядра 4.12.14-lp150.12.22-default

Тип ОС:64-bit

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. Так что вам просто нужно найти и установить это. На Федоре это compat-openssl10, Для openSuSE это libopenssl1_0_0, Затем.NET Core найдет его, подберет и использует автоматически.

У меня была такая же проблема с запуском sqlpackage на Ubuntu 20.04, когда dotnet работал регулярно.

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

Убунту 22.04

wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb

sudo dpkg -i libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb

По-прежнему получайте это в Fedora 30 (с установленным compat-openssl10) при использовании инструмента sqlpackage ( https://docs.microsoft.com/en-us/sql/tools/sqlpackage-download?view=sql-server-2017).

$ 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

Дотнет отлично работает сам по себе. Но запуск 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)

Я попробовал ссылку выше http://security.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5.5_amd64.deb, но при подключении дал мне ОШИБКУ 404 не найден. У кого-нибудь есть обновленная ссылка? Заранее спасибо

Я искал в github сообщение "Не найдена пригодная для использования версия libssl". Вы найдете множество вариантов основной библиотеки безопасности.Net на языке C, каждый из которых имеет очень специфическую загрузку dll для конкретных библиотек libssl, и все должно идеально соответствовать, несмотря на то, что во многих он назван по-разному.

Для raspberry pi / debian требуется именно libssl 1.0.2, ничего больше.

sudo apt-get install libssl1.0.2

должен сделать трюк для пи! Я не могу говорить о других вариантах.

Другие вопросы по тегам