所有分类
  • 所有分类
  • 游戏源码
  • 网站源码
  • 单机游戏
  • 游戏素材
  • 搭建教程
  • 精品工具

ubuntu安装dotnet教程|官方源配置|命令行步骤详解

ubuntu安装dotnet教程|官方源配置|命令行步骤详解 一

文章目录CloseOpen

从官方源开始:为什么这是最靠谱的选择

你可能会问,网上那么多一键安装脚本,为什么非要折腾官方源?这里我得掏心窝子跟你说个我的真实经历:去年给公司服务器部署.NET项目,图省事用了某论坛的第三方源,当时确实快,几分钟就装好了。结果三个月后微软发布安全补丁,我运行apt upgrade想更新,系统直接提示“无法验证包完整性”——第三方源根本没同步更新!最后没办法,只能卸载重装,项目停了半小时才恢复。后来查微软官方文档(https://learn.microsoft.com/zh-cn/dotnet/core/install/linux-ubuntu?nofollow)才发现,人家早就说了“不推荐使用非官方渠道的安装包,可能存在安全风险或兼容性问题”。

官方源到底好在哪?我 了三个点,你记一下:

第一是安全

,微软的签名密钥会给每个安装包加密,APT验证通过才会安装,不用担心恶意软件; 第二是更新及时,不管是功能更新还是安全补丁,官方源都是第一时间同步,不像第三方源可能拖几周甚至几个月; 第三是兼容性强,官方源会根据你的Ubuntu版本(比如20.04、22.04)自动匹配兼容的dotnet版本,不会出现“装了能用但跑项目就崩”的情况。

不过配置官方源确实比第三方源多几步,但这点时间花得值。就像你网购宁愿多等两天也要官方旗舰店,图的就是放心,对吧?

手把手命令行操作:从0到1配置dotnet环境

第一步:准备工作——确认你的Ubuntu版本

在开始之前,你得知道自己的Ubuntu是什么版本,因为不同版本支持的dotnet版本不一样。打开终端,输入这个命令:

lsb_release -r

会显示类似“Release: 22.04”的信息,记下来。比如Ubuntu 20.04最高支持到.NET 8,22.04能支持到最新的.NET 9预览版,这个对应关系微软官网有表格,我把常用的整理成了下面的表,你可以对照着看:

Ubuntu版本 支持的最新.NET版本 SDK包名称示例
20.04 LTS .NET 8 dotnet-sdk-8.0
22.04 LTS .NET 9(预览版) dotnet-sdk-9.0
24.04 LTS .NET 9 dotnet-sdk-9.0

表:Ubuntu版本与.NET版本对应关系(数据来源:微软官方文档)

第二步:添加微软官方签名密钥和源

这一步是核心,很多人失败就是因为密钥没加对,或者源地址写错了。你跟着我一步步来,别着急复制粘贴。

安装必要的依赖包,这些是APT用来处理HTTPS源的,输入:

sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl

如果提示“已经是最新版本”就不管,继续下一步。

然后添加微软的签名密钥,这个密钥用来验证安装包是不是微软官方发布的,输入:

curl https://packages.microsoft.com/keys/microsoft.asc | gpg dearmor | sudo tee /etc/apt/trusted.gpg.d/microsoft.gpg > /dev/null

这里注意,网址必须是https的,之前有同事用http,结果密钥下载不全,后面装包一直报错“签名无效”,折腾了好久才发现是这个问题。

接下来配置APT源,根据你的Ubuntu版本,选下面对应的命令。比如你的是22.04,就用第二个:

  • Ubuntu 20.04:sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-focal-prod focal main"
  • Ubuntu 22.04:sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-jammy-prod jammy main"
  • Ubuntu 24.04:sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-noble-prod noble main"
  • 输完命令后,系统会提示“是否继续”,按Enter就行。这时候源就配置好了,记得再更新一下APT缓存:

    sudo apt-get update

    如果这一步提示“GPG error: 公钥不可用”,别慌,说明密钥没加成功,回到添加密钥那一步重新来一遍,我第一次操作时也手抖输错过命令,多试一次就好。

    第三步:安装SDK还是Runtime?根据你的需求选

    现在源配好了,该装软件了。这里你要搞清楚,你需要的是SDK还是Runtime?简单说:

  • SDK(软件开发工具包):如果你要开发.NET项目,写代码、编译、发布,选这个,里面包含了编译器和各种工具;
  • Runtime(运行时):如果你只需要运行别人开发好的.NET程序,不需要写代码,选这个,体积小一些。
  • 我自己肯定装SDK,毕竟要写代码嘛。安装命令很简单,比如你要装.NET 8的SDK,输入:

    sudo apt-get install -y dotnet-sdk-8.0

    如果只要Runtime,就装:

    sudo apt-get install -y aspnetcore-runtime-8.0

    (ASP.NET Core项目用这个)

    或者 sudo apt-get install -y dotnet-runtime-8.0 (控制台应用用这个)

    装的时候可能会看到“正在解包”“正在设置”的提示,等几分钟,别中途关终端。我之前帮实习生装,他看进度条不动就关了,结果文件损坏,只能卸载重装,所以耐心点。

    第四步:验证安装——确认一切正常

    装完了别着急关终端,验证一下是否成功。输入:

    dotnet version

    如果显示类似“8.0.100”的版本号,恭喜你,成功了!如果提示“dotnet: 未找到命令”,先检查前面的步骤有没有漏,特别是源配置和安装命令有没有输对,或者重启终端再试,有时候环境变量没刷新。

    再进阶一点,你可以运行dotnet info,会显示更详细的信息,包括安装路径、Runtime版本、支持的架构等。我每次装完都会截图保存,万一以后项目出问题,这些信息对排查错误很有用。

    多版本共存:怎么装旧版本又不冲突

    如果你像我一样,既要维护老项目(比如用.NET 6),又要开发新项目(用.NET 8),可以同时装多个版本,系统会自动管理。安装方法和前面一样,比如再装个.NET 6的SDK:

    sudo apt-get install -y dotnet-sdk-6.0

    装完后,用dotnet list-sdks可以看到所有已安装的SDK,像这样:

    6.0.417 [/usr/share/dotnet/sdk]8.0.100 [/usr/share/dotnet/sdk]

    默认情况下,系统会用最新的版本,如果你想切换默认版本,用这个命令:

    sudo update-alternatives config dotnet

    会列出所有已安装的版本,输入序号就能切换,我之前不知道这个命令,每次切换版本都重装,现在想想真是太傻了。

    踩坑实录:我遇到过的5个典型问题及解决办法

    就算步骤都对,也可能遇到各种小问题,我把自己踩过的坑和解决办法整理出来,你可以对照着看:

  • 问题E: 无法定位软件包 dotnet-sdk-8.0
  • 原因:源配置错误,或者你的Ubuntu版本不支持这个.NET版本。

    解决:用lsb_release -r确认Ubuntu版本,再检查源地址是不是对应版本的,比如20.04用focal,22.04用jammy,别混了。

  • 问题dotnet run时报“缺少libicuuc.so.66”
  • 原因:缺少国际化支持库,Ubuntu默认可能没装。

    解决:装libicu库:sudo apt-get install -y libicu66(20.04用66,22.04用70,根据提示的版本号改)。

  • 问题:权限不足,无法创建项目
  • 原因:当前用户对目录没有写权限。

    解决:别用root用户装SDK,普通用户装完后,在自己的家目录(比如~/projects)创建项目,或者改目录权限:sudo chown -R $USER:$USER 你的目录

  • 问题:装完后dotnet version显示的版本不对
  • 原因:之前用其他方式装过dotnet,路径冲突了。

    解决:先卸载旧版本:sudo apt-get remove -y dotnet*,然后重新按步骤装。

  • 问题:APT更新时提示“仓库 ‘https://…’ 没有Release文件”
  • 原因:微软可能调整了源地址,或者你的网络不通(比如公司防火墙拦截)。

    解决:去微软官网查最新的源地址,或者用手机热点试试,我之前在公司内网就遇到过,换热点一下就好了。

    按照这些步骤走,你应该能顺利装好dotnet环境了。我自己前后帮十几个人装过,只要严格按官方源来,成功率基本100%。如果中间哪个环节卡住了,或者有其他问题,随时回来留言,我看到都会回复。对了,装完后记得跑个小项目试试,比如用dotnet new console -o myapp创建个控制台应用,再cd myapp && dotnet run,看到“Hello World!”就说明大功告成啦!


    你问Ubuntu服务器版和桌面版装dotnet是不是一个步骤?我跟你说,只要系统版本一样,比如都是22.04或者20.04,那命令行操作从头到尾都能通用。我之前给公司配服务器的时候,就是对着桌面版的教程一步步敲命令,从添加微软的签名密钥,到配置APT源地址,再到装SDK或者Runtime,甚至验证版本的dotnet version命令,完全没差别。服务器版虽然没图形界面,但装dotnet本来就靠终端,反而更纯粹,不用分心点鼠标;桌面版你要是习惯用终端,操作步骤跟服务器版分毫不差,我自己笔记本上装的时候,就是打开终端复制粘贴命令,十分钟搞定。

    不过有个小细节得注意,服务器版为了轻量,默认可能没装curl和apt-transport-https这两个工具——这俩是用来下载官方源密钥和处理HTTPS链接的。你要是在服务器上装,先跑一下sudo apt-get install curl apt-transport-https,花一分钟补全依赖,后面就和桌面版一模一样了。桌面版出厂就带了这些工具,所以不用这一步。其他像验证安装、多版本管理这些操作,不管是服务器还是桌面版,用的命令都一样,比如dotnet list-sdks看已装版本,或者update-alternatives切换默认版本,完全通用。我之前帮朋友在他的Ubuntu笔记本上装,又在公司服务器上配,两套环境用的是同一份笔记,一点没踩坑。


    如何卸载已安装的dotnet版本?

    如果需要卸载某个dotnet版本(如旧版本SDK或Runtime),可以通过APT命令直接操作。卸载SDK使用:sudo apt-get remove -y dotnet-sdk-版本号(例如卸载.NET 6 SDK:sudo apt-get remove -y dotnet-sdk-6.0);卸载Runtime使用:sudo apt-get remove -y aspnetcore-runtime-版本号(ASP.NET Core项目)或sudo apt-get remove -y dotnet-runtime-版本号(控制台应用)。若需彻底清理残留配置,可追加purge参数(如sudo apt-get remove purge dotnet-sdk-6.0),但注意这会删除所有相关配置文件,仅 完全不需要该版本时使用。

    安装后运行“dotnet”命令提示“未找到命令”,可能是什么原因?

    这种情况通常是环境变量未正确加载或安装路径未添加到系统PATH。首先检查终端是否重启过,刚安装完dotnet后,环境变量需要重启终端才能生效;若重启后仍提示,可手动验证安装路径:ls /usr/share/dotnet,若显示dotnet可执行文件,说明安装成功,只需将路径添加到PATH:export PATH=$PATH:/usr/share/dotnet,并将该命令添加到~/.bashrc(或对应shell的配置文件)中永久生效。如果路径不存在,可能是安装过程中断, 重新执行安装命令并检查输出日志。

    Ubuntu服务器版(无图形界面)和桌面版安装dotnet的步骤一样吗?

    完全一样。无论是服务器版(如Ubuntu Server 22.04)还是桌面版(Ubuntu Desktop 22.04),只要系统版本相同,安装dotnet的命令行步骤(添加官方源、安装依赖、配置密钥等)完全一致。服务器版无需额外安装图形化工具,所有操作通过终端即可完成;桌面版若使用终端执行命令,步骤与服务器版无差异。唯一可能的区别是服务器版默认可能未安装curlapt-transport-https,需先通过sudo apt-get install curl apt-transport-https补充依赖,而桌面版通常已预装这些工具。

    官方源下载速度慢,有没有办法加速?

    若官方源(https://packages.microsoft.com)速度较慢,可优先考虑微软官方提供的中国镜像源(需注意验证源的可靠性)。 将源地址中的https://packages.microsoft.com替换为https://mirror.azure.cn/microsoft(微软 Azure 中国镜像),具体步骤:编辑源文件(sudo nano /etc/apt/sources.list.d/microsoft.list),将原地址替换为镜像地址,保存后执行sudo apt-get update即可。注意:非官方镜像可能存在同步延迟风险,生产环境 优先使用官方源,个人开发环境可临时使用镜像加速,但需定期同步官方源确保更新及时。

    如何查看系统中已安装的dotnet SDK和Runtime版本?

    通过两个简单命令即可查看:查看已安装的SDK版本,执行dotnet list-sdks,输出格式类似“8.0.100 [/usr/share/dotnet/sdk]”;查看已安装的Runtime版本,执行dotnet list-runtimes,输出包含Runtime类型(如ASP.NET Core Runtime、.NET Runtime)及版本路径。这两个命令能帮你快速确认安装是否成功,以及是否存在多个版本共存的情况,方便后续版本切换或项目环境匹配。

    原文链接:https://www.mayiym.com/45294.html,转载请注明出处。
    0
    显示验证码
    没有账号?注册  忘记密码?

    社交账号快速登录

    微信扫一扫关注
    如已关注,请回复“登录”二字获取验证码