3

I have two Ubuntu 22.04 systems with Dotnet 6.0. The one that has been continuously upgraded from older versions of Ubuntu runs my Dotnet Core 3.1 app without any trouble -- because it still has the old runtime (and libssl1.1) that are no longer available for 22.04.

The one running in WSL (i.e., Ubuntu under Windows) has the dotnet6.0 package, libssl1.1 downloaded from packages.ubuntu.com/focus, and aspnetcore-runtime-3.1 from microsoft .

But dotnet --info:

.NET SDK (reflecting any global.json):
 Version:   6.0.108
 Commit:    4e3a463d2b

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  22.04
 OS Platform: Linux
 RID:         ubuntu.22.04-x64
 Base Path:   /usr/lib/dotnet/dotnet6-6.0.108/sdk/6.0.108/

global.json file:
  Not found

Host:
  Version:      6.0.8
  Architecture: x64
  Commit:       55fb7ef977

.NET SDKs installed:
  6.0.108 [/usr/lib/dotnet/dotnet6-6.0.108/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.8 [/usr/lib/dotnet/dotnet6-6.0.108/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.8 [/usr/lib/dotnet/dotnet6-6.0.108/shared/Microsoft.NETCore.App]

Even though the runtime shows at /usr/share/dotnet/shared/Microsoft.NETCore.App/3.1.28/

2

2 Answers 2

4

It turns out the Ubuntu choices for SDK and runtime location are incompatible with Microsoft's. So, it's nice to have the dotnet6 package to pull in all the packages, but the ones you want are actually Microsoft's! The key is to first create an apt preferences file:

derbro@L21PS773:~$ cat /etc/apt/preferences.d/dotnet.pref
Package: *                                                                                                                                                                                  
Pin: origin "packages.microsoft.com"                                                                                                                                                        
Pin-Priority: 1001                                                                                                                                                                          

(which my working system already had based on instructions for making Dotnet 6.0 work, at Why don't any of these methods work for installing .Net Core SDK & runtime on 22.04 (Jammy Jellyfish)?. I actually didn't have a problem getting Dotnet 6 to work on this WSL installation, I just couldn't make it find the 3.1 runtime)

Now, install the 3.1 runtime or SDK per MS instructions:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y aspnetcore-runtime-6.0
#or
sudo apt-get install -y dotnet-sdk-3.1

(if either fail to install because you're missing libssl1.1, you'll have to get that from https://packages.ubuntu.com/focal/libssl1.1 and install with dpkg --install)

Then upgrade your MS sources:

wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt-get update

and install (or reinstall) dotnet6

sudo apt install dotnet6
0
-1

In the file /etc/ssl/openssl.cnf, comment this line:

#openssl_conf = openssl_init

So, try to install the sdk 3.1:

sudo wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo rm packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y dotnet-sdk-3.1

And now, go to the terminal and type this comand:

dotnet --info

if everything is fine, you will see the path of instalation of dotnet 3.1

2
  • I think you're trying to solve two different problems there. First, an openssl issue (my openssl.cnf does not have that commented, anyway, but dotnet-sdk-3.1 depends on libssl1.1 which your solution doesn't provide); and secondly the 3.1 sdk. However, the issue I had is that I had apt-installed dotnet-sdk-3.1 and it still doesn't work because you will have Ubuntu's version of 6.0, which is incompatible (perhaps Ubuntu has fixed this by now). Otherwise, your answer is a subset of mine.
    – Auspex
    Oct 10, 2022 at 13:05
  • @Auspex for me, this solution work. I follow this exacly steps and dotnet 3.1 and 6.0 is running on ubuntu 22.04.
    – Paulo
    Oct 22, 2022 at 0:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.