如何在Ubuntu 16.04 LTS上安装dotnet SDK

16

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

但是,当我尝试运行时,仍然会出现错误。

sudo apt-get install dotnet-sdk-2.1.4

具体来说,它表示:

E:无法找到软件包dotnet-sdk-2.1.4
E:无法找到任何与glob 'dotnet-sdk-2.1.4'匹配的软件包
E:无法找到任何与regex 'dotnet-sdk-2.1.4'匹配的软件包

然而,运行命令sudo apt search dotnet会显示出该软件包。

我有做错什么吗?


https://learn.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore2x - carson
Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎不属于编程或开发范畴。请参阅帮助中心中的我可以在这里问什么样的问题。也许超级用户Unix&Linux Stack Exchange更适合提问。 - jww
@Aerophilic 不,你的话题很正常。 - spender
2
@jww,您似乎对这里可以提出的问题类型存在误解。请参考您上面发布的文档,在第一段中您会看到以下内容:“如果您的问题通常涵盖……[省略]程序员通常使用的软件工具;[省略]…那么您就来对地方了!”我认为我们都可以同意,安装SDK属于这个范畴。 - spender
然而,我仍然认为在https://askubuntu.com或类似网站上询问这个问题可能会有价值。 - spender
显示剩余4条评论
8个回答

22

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

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

希望这能帮到你!


2
看起来他们终于修复了他们的软件包! - Aerophilic
1
我按照指令操作,但出现了以下错误: 正在读取软件包列表... 完成 正在构建依赖关系树
正在读取状态信息... 完成E: 无法找到软件包 dotnet-sdk-2.1.4E: 找不到任何与 glob 'dotnet-sdk-2.1.4' 匹配的软件包E: 找不到任何与 regex 'dotnet-sdk-2.1.4' 匹配的软件包
- Sachin Shah
1
是的!我在我的Mint盒子上尝试让它工作了数日,但我找到的任何一组指令都不起作用。Ubuntu没有问题,但Mint却有问题。然而,这个方法有效了。(Mint 18.3)你太棒了! - Matt West
请将Google DNS添加到您的/etc/resolv.conf文件中,以查看软件包。 - Josh Graham

6

请确保您也运行了必备的命令:

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 rel="noreferrer" href="https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod">https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod</a> xenial main" > /etc/apt/sources.list.d/dotnetdev.list'

最后:
sudo apt-get update

sudo apt-get install dotnet-sdk-2.1.4

1
对于 Ubuntu 18.04 的其他用户,需要运行以下命令: sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-bionic-prod bionic main" > /etc/apt/sources.list.d/dotnetdev.list'然后更新软件包列表并安装 sudo apt install dotnet-sdk-2.1 包。 - Arkadiusz Wieczorek
我在Ubuntu 18.04和dotnet-sdk-3.1上测试通过。请注意,你需要使用以下命令安装dotnet-sdk-3.1: sudo apt-get install -y apt-transport-https && \ sudo apt-get update && \ sudo apt-get install -y dotnet-sdk-3.1``` - VoteCoffee

3
由于软件包不支持您的处理器架构,apt无法定位软件包的一个原因是。dotnet core 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

如果返回的结果不是amd64,那么你可能就没办法了。除非你在64位PC上安装了32位PC的Ubuntu镜像。如果是这种情况,重新安装Ubuntu,使用64位PC(AMD64)的安装镜像即可。

1

看起来设置apt仓库的deb软件包有一些问题。作为一个快速解决方案,在安装了ms仓库设置软件包后执行以下操作:

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

修复在Ubuntu 18.04上有效,但似乎在这里是相同的问题。


0

更新丢失:

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

0

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

cd /etc/

sudo chmod 777 resolv.conf

cat resolv.conf(如果没有8.8.8.8的Google DNS,则执行下一行)

echo "nameserver 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(将版本号更改为您想要的版本)


0

0

在执行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

我不太确定它实际上是做什么的,看起来像是添加第三方证书机构之类的东西。无论如何,在重新执行sudo apt-get updatesudo apt-get install dotnet-sdk-2.1.4之后,该软件包最终可以安装而不会出现“找不到”的错误。


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