如何在 Ubuntu 16.04 LTS 上安装 dotnet SDK

How to install dotnet SDK on Ubuntu 16.04 LTS

我一直在按照此处提供的说明进行操作: https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2x

但是,当我尝试 运行"

时,我总是收到错误消息
sudo apt-get install dotnet-sdk-2.1.4

具体说:

E: Unable to locate package dotnet-sdk-2.1.4
E: Couldn't find any package by glob 'dotnet-sdk-2.1.4'
E: Couldn't find any package by regex 'dotnet-sdk-2.1.4'

但是,sudo apt search dotnet 会导致显示包裹。

我是不是做错了什么?

尝试 运行在您的终端上执行此命令:

wget -q packages-microsoft-prod.deb https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

然后更新您的系统:

sudo apt-get update

最后,运行 安装 .NET 的命令

sudo apt-get install dotnet-sdk-2.1.4

希望对您有所帮助!

缺少更新:

sudo apt-get update
sudo apt-get install dotnet-sdk-2.1.4

确保您 运行 必备命令还有:

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg

sudo sh -c 'echo "deb [arch=amd64] <a href="https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod" rel="noreferrer">https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod</a> xenial main" > /etc/apt/sources.list.d/dotnetdev.list'</pre>

最后:

sudo apt-get update
sudo apt-get install dotnet-sdk-2.1.4

看起来好像用于设置 apt 存储库的 deb 包有一些问题。作为安装 ms repo 安装包后的快速修复:

sudo cp \
  /etc/apt/sources.list.d/microsoft-prod.list.save \
  /etc/apt/sources.list.d/microsoft-prod.list

 sudo apt-get update
 sudo apt-get install dotnet-sdk-2.1

Fix 在 ubuntu 18.04 上运行,但在这里似乎是同一个问题。

在执行 sudo apt-get update 时,您可能会遇到此错误:

W: GPG error: https://packages.microsoft.com/repos/microsoft-ubuntu-bionic-prod bionic InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EB3E94ADBE1229CF
E: The repository 'https://packages.microsoft.com/repos/microsoft-ubuntu-bionic-prod bionic InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

请注意,它并不那么明显(它们都是相同的字体颜色,如果您不阅读打印到控制台输出的所有内容,很容易被忽略)。

可以用这个命令修复:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 6494C6D6997C215E

我不太确定它到底做了什么,看起来像是添加了第 3 方证书颁发机构或类似的东西。无论如何,在重做 sudo apt-get updatesudo apt-get install dotnet-sdk-2.1.4 之后,包最终可以安装而不会出现 "couldn't find" 错误。

apt 无法找到软件包的一个原因是它们不适用于您的处理器架构。 dotnet 核心 Linux 库不支持 32 位 PC(i386、i686),仅支持 64 位 PC(amd64)。如果你碰巧安装了 Ubuntu 不同的架构,apt-get 将报告上述错误:

Unable to locate package dotnet-sdk-2.2
E: Couldn't find any package by glob 'dotnet-sdk-2.2'
E: Couldn't find any package by regex 'dotnet-sdk-2.2'

使用以下命令检查您当前的架构:

arch

如果这个 returns 除了 amd64 以外的任何东西,您可能就不走运了。除非你在 64 位 PC 上安装了 32 位 PC Ubuntu 图像。如果是这种情况,请使用 64 位 PC (AMD64) 安装映像重新安装 Ubuntu。

这个回答有点迟了,但我相信增值行为永远不会迟到。

我发现下面这些 links 非常有帮助和详细 关于在 linux 上安装 ubuntu 并讨论 .NET Core 版本和支持它们的 Ubuntu 版本已经足够详细了。

INSTALL DOTNET CORE LINUX : HOW TO INSTALL .NET CORE ON UBUNTU

它还有 link 如何安装最新的 ubuntu 20.04。

How to Install .NET core 3.1 on Ubuntu 20.04 LTS (Focal Fossa)

在 WSL 16.04 上,我无法解析 Microsoft 或 debian 服务器位置。以下是我采取的步骤:

cd /etc/

sudo chmod 777 resolv.conf

cat resolv.conf(如果 Google dns 没有 8.8.8.8 则遵循下一行)

echo "名称服务器 8.8.8.8" >> resolv.conf

sudo wget http://ftp.us.debian.org/debian/pool/main/i/icu/libicu57_57.1-6+deb9u4_amd64.deb

sudo dpkg -i libicu57_57.1-6+deb9u4_amd64.deb

sudo apt install dotnet-sdk-3.1(把版本号改成自己想要的)