在 Linux ARM 系统上安装 .Net

Posted on By 李继龙

哭笑不得的经历

半个月前我在我树莓派上装 .Net 可没少走弯路,我来粗略的说说我这弯路是咋走的吧
我先是想着用apt命令一键安装,于是我就 sudo apt-get install dotnet 敲回车之后提示说找不到包
我就又试了试 dotnet-sdk 和 dotnet-runtime 结果都一样是找不到包

然后我就到微软文档上找安装资料去了。。。
我先是找到了Ubuntu的安装文档(因为我知道他也是用apt管理软件包的)
这个文档里面说要先加个密钥再加个软件源,然后还要装个解析https源的软件之后还得 apt-get update 更新下软件包索引
上面这些都搞完后才能用 apt-get install dotnet-sdk 来装.NetSDK,然而在我一通复制粘贴之后,居然还是说找不到包 忽然我又在左边目录看到了 debian的安装文档 里面说的步骤和上面大同小异
然后我又是一通Copy猛如虎,再看结果。。啥都没有,TMD别人薅羊毛的都有2块5呢,我这还是说找不到包

最后我实在没办法,只好找人问呗,其实说是找人也不对,因为我是在群里提问的
不久,就有个大佬回复我了。。

这文档开头就说了:目前只支持在64位的系统上使用apt命令一键安装,其他体系结构(如 ARM)请手动安装

我回去再看了下文档,woc还真是,而且后面还有个手动安装的文档链接,顿时觉得哭笑不得

之后我就按照这文档安装了,终于把sdk和asp.net core的Runtime安装成功了,迫不及待的建了个mvc项目,准备立马跑起来看下效果,然而就在我输入了 dotnet run 并回车之后他却报错了,大概意思是说找不到runtime,可问题是我明明都装了,而且环境变量都配置好了,咋还是找不到呢

dotnet运行错误

无奈之下,我只能再次到群里提问
这次没一个人知道这是咋回事,倒是之前那位大佬给我发了个 “怎么在linux arm上安装.net” 的帖子
最终我自己找到了原因:环境变量没配置好,$DOTNET_ROOT 变量的开头多了个冒号🤣

修改好了之后总算是能跑起来了,但没几天我又发现了个问题,没法在root账户下使用dotnet,提示说未知命令
我稍微想了下就知道问题应该出在哪了,我把dotnet装在pi账户的个人文件夹下了,自然别的账户访问不到

这时候我想起了之前那位大佬发的帖子,看了下帖子里的方法,发现他的安装位置是全局的,而且我跟他也就少两个命令罢了,那两个命令是移动文件夹和软链接
按他的方法搞完,再把环境变量全删了之后,问题就完美解决了,不管啥账户都能用了

最后附上这位大佬的博客,同时再次感谢这位大佬
LiesAuer’s Blog: https://www.liesauer.net/blog/

下载与解压

温馨提示:以下操作我都是在树莓派上搞的

首先我们得去官网上下载 .net core sdk 和 runtime
下载地址: https://dotnet.microsoft.com/download/dotnet-core/

下完之后,把他俩都解压到一个文件夹里去,这文件夹的名字并不重要,但最好是dotnet

$ mkdir -p dotnet
$ tar -zxf 压缩包文件路径 -C ./dotnet/

解压完成截图

移动与软链接

首先要把 dotnet 文件夹移动到 /usr/share/ 目录下

$ sudo mv dotnet /usr/share/dotnet/

移动过去之后,再来创建个软连接

$ sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet

ok,现在重启下终端或者ssh,你就可以开始使用dotnet了

到此dotnet sdk及runtime就安装完成了

参考资料: https://gist.github.com/richlander/467813274cea8abc624553ee72b28213