如何在Ubuntu 20.04 Focal上下载dotnet-sdk-2.2?

5

我一直在尝试在Ubuntu上下载netcore 2.2,我已经尝试了apt,但没有成功,出现了包找不到的错误。

我还尝试过下载二进制文件并注册路径,但似乎不起作用。这真的完全不可能吗?

4个回答

5

微软于2019年12月将.NET Core 2.2列为终止支持状态,因此在包括Ubuntu 20.04在内的最新版本Linux发行版中,微软不再提供.NET Core 2.2包。现仅有2.1和3.1这两个得到当前支持的版本可供Ubuntu 20.04使用,可从此处获取。

如果您想安装它们,应尝试手动安装

  1. Go to the main download site: https://dotnet.microsoft.com/download/dotnet-core

  2. Click "Out of support versions". That should show you a table. Click on 2.2, which should take you to: https://dotnet.microsoft.com/download/dotnet-core/2.2

  3. Click on the "x64" under the "Binaries" table of the release: https://dotnet.microsoft.com/download/dotnet-core/thank-you/sdk-2.2.207-linux-x64-binaries

  4. Follow the steps on that page to extract the downloaded tarball and "install" it:

    mkdir -p $HOME/dotnet && tar xf dotnet-sdk-2.2.207-linux-x64.tar.gz -C $HOME/dotnet
    export DOTNET_ROOT=$HOME/dotnet
    export PATH=$PATH:$HOME/dotnet
    

我将重复在下载页面上看到的警告:这是一个旧版本的.NET Core,存在许多未修补的安全漏洞,现在已经公开。您不希望使用.NET Core 2.2部署应用程序到生产环境中。请升级到 3.1 或降级到 2.1。


1
在我的情况下,我将提取的归档文件(主机、SDK、共享文件)复制到 /usr/share/dotnet 中的 dotnet 共享文件夹中。(在 Ubuntu 20.04 上) - Soren

2
在我的情况下,我已经通过APT安装了版本。
由于我需要处理一些仍在使用.NET Core 2.2的项目,我只需将$HOME/dotnet/sdk/2.2.207(此版本可能与您的机器上的版本不同)和$HOME/dotnet/shared/*文件夹的内容复制到/usr/share/dotnet中。
使用bash,我使用以下命令:
sudo cp -r ~/dotnet/sdk/* /usr/share/dotnet/sdk/
sudo cp -r ~/dotnet/host/* /usr/share/dotnet/host/
sudo cp -r ~/dotnet/shared/* /usr/share/dotnet/shared/

它在我的Ubuntu 20.04上运行良好。我认为这是正确的方式,因为运行dotnet --list-sdks会同时显示版本2.2和其他版本。 - Doan Thai

0

我曾经遇到过同样的问题。这是我所做的:

sudo apt-get install -y gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget -q https://packages.microsoft.com/config/ubuntu/20.04/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2

1
请解释这些命令。 - carloswm85
"E: 无法找到 dotnet-sdk-2.2 软件包" 在我的机器上似乎无法工作。 - XouDo

0

首先必须非常清楚地阅读答案,以了解@amajid的相关信息。

关于第4点,如果您已经安装了其他SDK,例如Dotnet SDK 3.1或2.1(在Ubuntu 20.04上支持的SDK),您可以像@Soran在@omajid答案下评论的那样,在另一个SDK的默认位置[在/usr/share/dotnet文件夹下]手动安装Dotnet SDK 2.2。

sudo tar xf dotnet-sdk-2.2.207-linux-x64.tar.gz -C /usr/share/dotnet

提取Dotnet SDK后,必须确保所有文件夹和文件都使用root用户和root组。

sudo chown -R root /usr/share/dotnet
sudo chgrp -R root /usr/share/dotnet 

最后,我想提到在Ubuntu 20.04上手动安装Dotnet SDK 2.2将会完成并正常运行。但是,你将会遇到一些问题(这已经发生在我身上)。
1-你无法使用Ubuntu 20.04 Runtime运行 发布命令,因为框架不支持此运行时。
 dotnet publish -c Release -r ubuntu.20.04-x64 --self-contained

2- 每当您使用dotnet命令时,会遇到NuGetFallbackFolder文件的Permission denied错误问题,Github issue


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接