树莓派3B+上运行.Net Core项目

最近买了个树莓派3B+,准备把自己写的一个.Net Core爬虫挂在上面跑

买之前没有想到树莓派因为是今年新出的,导致驱动以及系统啥的都不是很完善,导致走了很多弯路,早知道买树莓派3就不用那么多折腾了

首先买来之后安装了树莓派的官方系统,跑了下数据库emmm

左边是树莓派上进行的数据库增删改减的计时,单位是毫秒,右边是台式机上面跑的速度,可以说性能还是相当不满意的(其中相当大的消耗是在创建数据库上)

然后我当然不能忍,于是就准备换一个我熟悉的Ubuntu系统试试会不会是系统原因造成的这种情况

换成Ubuntu后,由于是树莓派3B+,没有找到对应的基于Arm32架构编译的,只找到某个大神基于Arm64编译的,所以碰到了不少的问题。

以下是正文

首先从https://github.com/chainsx/ubuntu64-rpi下载并部署基于Linux-arm64(aarch64)的Ubuntu 18.04系统

然后将tf卡插入树莓派后启动,这里有点需要注意,这个系统在树莓派3B+上面,插入网线是不工作的,所以你还是需要用HDMI线和键盘来操作以及显示

登录root后输入

sudo chainsx-tools

进入该系统的编译作者做的一个配置工具,在这里你可以选择连接并自动配置wifi(不知道为啥,在我这没法连接到5G的wifi,可能还是驱动的问题)

连接上Wifi后,就可以拔掉HDMI和键盘,直接使用台式机远程SSH连接过去操作了,而且每次开机时自动连接的,这点挺好

好了,接下来配置 .Net Core环境

由于在arm架构上面,好像是没有.Net Core的SDK的吧,不过,好在Runtime还是可以安装的

不过,我并不清楚Runtime是不是必须的,装着吧,反正没啥损失

wget https://dotnetcli.blob.core.windows.net/dotnet/Runtime/master/dotnet-runtime-latest-linux-arm64.tar.gz
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet-runtime-latest-linux-arm64.tar.gz -C /opt/dotnet
sudo ln -s /opt/dotnet/dotnet /usr/local/bin

然后我们安装必要的依赖项目

输入以下命令

sudo apt update && sudo apt upgrade
sudo apt-get install curl libunwind8 gettext apt-transport-https
sudo dpkg --add-architecture armhf
sudo apt-get update
sudo apt-get install libc6:armhf
sudo apt-get install libunwind8:armhf
sudo apt-get install libunwind8:armhf gettext:armhf

讲一下上面这些都干了啥吧

首先,安装必要的依赖库,这些在https://github.com/dotnet/core/blob/master/samples/RaspberryPiInstructions.md可以看到

不知道出于什么原因,目前发布版的.Net Core 只能编译成arm32(armhf)而不是arm64(aarch64),而我所使用的的树莓派3B+只能安装arm64架构的Ubuntu系统(树莓派3有arm32架构的ubuntu可以安装,所以使用树莓派3反而能轻松不少)、

所以第一步需要先开启32位支持

然后还需要安装能用于32位的二进制依赖库才能正常运行

好,姑且系统层面已经部署完毕了,下面是项目层面的事情

首先

运行CMD然后CD到项目目录

然后输入命令

dotnet publish -r linux-arm

说明:-r表示运行平台,可以是win-arm、linux-arm、linux-arm64、win-x86、win-x64等等,具体取决于你安装的.Net Core SDK支持什么

你们可能会问,干嘛不直接发布成linux-arm64的,其实我也想这样做,而且确实可以安装预览版的SDK(https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.1.0-preview2-download.md)

不过不知道出于什么原因,我还是无法在树莓派的Ubuntu上面正常运行,有空再试试,目前还是不了了之

然后,我们接下去吧

在项目的目录中会生成bin\Debug\netcoreapp2.0\linux-arm 文件,把linux-arm文件夹下的publish文件夹的内容全部复制到树莓派上

用FTP发过去就行

然后SSH到树莓派,CD到对刚才复制的项目目录授权755或777

chmod 777 ./项目名

经过以上这么折腾以后,我们终于可以运行.Net Core的项目了

输入

./项目名

在树莓派上成功运行了我所创建的项目,同样的数据库增删改减,所使用的的时间几乎只要原先的的一半所有,可以说相当满意了。

原文地址:https://www.cnblogs.com/ACDIV/p/9270836.html

时间: 2024-10-13 23:25:05

树莓派3B+上运行.Net Core项目的相关文章

DOCKER上运行DOTNET CORE

原文:DOCKER上运行DOTNET CORE 下载microsoft/dotnet镜像 运行命令: docker pull microsoft/dotnet 如果没有使用阿里镜像加速的,参照这篇先配置好再跑上面命令: http://www.cnblogs.com/windchen/p/6231009.html 启动持久化容器 docker run -itd -p 5000:5000 microsoft/dotnet -p用来添加Host跟Container的端口映射 创建.NET Core M

在树莓派上运行dotNet core console 程序

---恢复内容开始--- 微软的dotNet Core 已经发布很长时间了,现在最新的版本是2.0.2 发现大家对dotNet Core 在service & micro service上的文章不少.不过本地程序却少的可怜. 作为CS端坚守的dotneter  我觉得应该做点什么,让误入dotNet CS端的小盆友们不要再无助下去. 好了身家,三围,银行卡号已经交代清楚,下来我们进入正题,看看如何在armhf设备上run起来一个dotNet Core的Console Application. 首

.linux上运行 .net core程序

1.安装 .net core 环境 rpm --import https://packages.microsoft.com/keys/microsoft.ascsh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgc

在传统.NET Framework 上运行ASP.NET Core项目

新的项目我们想用ASP.NET Core来开发,但是苦于我们历史的遗产很多,比如<使用 JavaScriptService 在.NET Core 里实现DES加密算法>,我们要估计等到.NET Core 1.2我们才会有大部分的API,通过NodeJs方式有点曲线救国的味道,很多人会不认同,如果要在纯的.NET Core下运行我们的ASP.NET Core项目,在特定的时间进度内很难办到,不仅仅我们所依赖的一些API还没有,还有我们大量的.NET Framwork的库还来不及迁移到.NET S

openvino:yolov3转换成tenserflow模型再转换成openvino模型,并用神经计算棒一代加速树莓派3b+

在转换yolo3是时遇到了问题: [ ERROR ]  List of operations that cannot be converted to IE IR:        [ ERROR ]      LeakyRelu (72)        [ ERROR ]          detector/darknet-53/Conv/LeakyRelu ........ [ ERROR ]  Part of the nodes was not translated to IE. Stoppe

eclipse 创建并运行maven web项目

这两天想在eclipse上运行maven web项目,折腾了许久,总算success啦. 1,利用eclipse创建dynamic web project(eclipse需要安装m2eclipse). 步骤如下图: 2,创建完project后修改pom文件 Right Click >> Run As >> Maven Build,在窗口中的Goals内输入:package tomcat:redeploy, click "run"控制台出现结果:BUILD FAI

【无私分享:ASP.NET CORE 项目实战(第十章)】发布项目到 Linux 上运行 Core 项目

目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 ASP.Net Core 给我们带来的最大的亮点就是跨平台,我在我电脑(win7)上用虚拟机建了个 CentOS7 ,来演示下,我们windows上的项目如何发布项目到Linux上运行.我这里有个在windows上搭建过的程序,我们主要演示如何在linux上运行,所以大家不要纠结于这些,大家可以新建一个web项目尝试一下. 安装.NET Core SDK for CentOS 微软有详细的安装命令,可以参考Install

发布项目到 Linux 上运行 Core 项目

发布项目到 Linux 上运行 Core 项目 目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 ASP.Net Core 给我们带来的最大的亮点就是跨平台,我在我电脑(win7)上用虚拟机建了个 CentOS7 ,来演示下,我们windows上的项目如何发布项目到Linux上运行.我这里有个在windows上搭建过的程序,我们主要演示如何在linux上运行,所以大家不要纠结于这些,大家可以新建一个web项目尝试一下. 安装.NET Core SDK for CentOS

在IIS上部署你的ASP.NET Core项目

概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中,最终转达到不同的客户端(浏览器,APP,客户端等).而配置文件和过程都会由些许调整,中间最重要的角色便是AspNetCoreModule,