树莓派安装centos运行dotnet应用的实践

简介: 在树莓派3上运行dotnet应用,这个过程走了很多弯路,也浪费了不少时间,所以记录一下,供大家参考。

在树莓派3上运行dotnet应用,这个过程走了很多弯路,也浪费了不少时间,所以记录一下,供大家参考。树莓派官方提供的镜像系统,是Debian系统,由于习惯了centos的操作,所以选择了安装centos。centos系统的选择是非常重要的,我用的是树莓派3,1G的内存,尝试过Centos7的多个树莓派镜像版本后,都有但是太多麻烦的问题需要自己处理,比如 sd卡扩容,连接sftp,运行dotnet 报错 GLIBCXX_3.4.20 not found,数据库安装失败等一堆问题要等着处理,在尝试centos8系统时,成功跑起了dotnet应用;最终选择使用了centos8的树莓派镜像版本.

准备

硬件:树莓派3, sd卡
软件:win32DiskImage,centos8树莓派镜像
我己上传至百度云盘(提取码:d3ag)和阿里云盘,需要的自己下载;

1.系统环境搭建

centos7有很多问题需要自己动手去解决,所以系统使用centos8的树莓派镜像,在centos官方找到树莓派8的镜像,或到网盘下载;我的树莓派3上使用的是镜像CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4-sda.raw

烧录centos8镜像

用到软件Win32 Disk Imager,烧录centos镜像到SD卡步骤:
a.插入SD卡,打开Win32 Disk Imager
b.选择解压后的镜像CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4-sda.raw
c.点击Write
rasp1.png

d.完成后,将sd卡插入树莓派

启动树莓派的系统

将树莓派通电,系统启动后,默认系统的帐号root 默认密码为centos,输入帐号密码完成系统登录

1.1 连接wifi网络

查看附近wifi
nmcli d wifi
连接指定wifi
nmcli d wifi connect wifi名称 password wifi密码

1.2 扩容SD卡

使用CentOS官网镜像进行烧录的系统大约只占用了2G的空间,我用的SD卡有16G的空间,约12g没有使用,这时候需要将sd卡进行扩容
扩容步骤:
yum install -y lvm2
yum -y install cloud-utils-growpart.noarch
growpart /dev/mmcblk0 3 #[注意这里是mmcblk0 '空格' 3] (此步骤将余下未分配的11.2G空间扩展到了/dev/mmcblk0p3分区上了)
resize2fs /dev/mmcblk0p3 #拉伸一下分区
操作完成,查看一下,/dev/root分区扩容成功
df -h

2.软件环境安装

现在树莓派的连接方式还是直连键盘和显示器的方式,安装一个web管理界面,就可以通过网络对树莓派进行操作了

2.1安装cockpit

cockpit是一款功能强大的linux监控工具,提供了web方式操控终端和docker镜像,还有一个好处是,可以复制粘帖linux命令了
cockpit安装骤:
a.安装cockpit
sudo yum install -y cockpit
//如果你想要防火墙功能,安装
firewalldsudo yum install firewalld
//如果你想要虚拟机管理功能,安装
cockpit-machinessudo apt install cockpit-machines
//如果你想要容器管理功能,安装cockpit-podman,podman命令行完全兼容docker,也可以替代docker使用
yum install -y cockpit-podman
b.安装完毕之后,启动服务
sudo systemctl start cockpit
c.设置cockpit开机自动启动
sudo systemctl enable --now cockpit.socket
d.重启后reboot,开始容器管理

e.进入web管理界面
使用PC打开 http://树莓派IP:9090 进行操作,可以通过web方式访问树莓派终端
rasp2.png

2.2 安装必要软件

sudo yum install -y gcc gcc-c++ icu make git cmake vim curl wget tar libtool net-tools
a.软件升级
通过软件更新,可以用鼠标进行centos8升级操作
rasp3.png

b.更换yum源为阿里云
备份
cd /etc/yum.repos.d
cp CentOS-Base.repo CentOS-Base.repo.bak
下载阿里云源文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
清除旧的yum缓存并生成新的yum缓存
yum clean all
yum makecache

centos 防火墙管理

进入web管理界面,点击网络,进行网络管理
rasp4.png

2.3 安装dotnet环境

要使用linux arm64版本的dotnet,该版本需要使用手动安装完成
可以从微软官方.NET 6.0下载dotnet,当前版本6.0
具体安装步骤:

2.3.1 下载并安装.net环境

wget https://download.visualstudio.microsoft.com/download/pr/adcd9310-5072-4179-9b8b-16563b897995/15a7595966f488c74909e4a9273c0e24/dotnet-sdk-6.0.100-linux-arm64.tar.gz &&mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-6.0.100-linux-arm64.tar.gz -C $HOME/dotnet

2.3.2 设置dotnet路径,使其开机后也可以正常使用dotnet
执行
vi .bashrc
添加两行代码到文件末尾

export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet

:wq保存并重启 reboot

2.4 安装supervisor

2.4.1 安装epel源
yum install -y epel-release

2.4.2 安装supervisor
yum install -y supervisor
supervisor默认配置文件放在 /etc/supervisord.d/*.ini

2.4.3 设置supervisor为开机启动
systemctl start supervisord.service
点击服务,搜索supervisord 设为开机启动即可

2.4.4 启动supervisord
查看应用进程 ps -ef | grep 应用名称
ps -ef | grep supervisord
如果supervisord进程己启动就结束进程
kill -9 进程id

启动supervisord
supervisord -c /etc/supervisord.conf

2.5 安装nginx与myql

经过测试,这个版本系统,通过lnmp就可以正常安装,执行
wget http://soft.vpser.net/lnmp/lnmp1.7.tar.gz -cO lnmp1.7.tar.gz && tar zxf lnmp1.7.tar.gz && cd lnmp1.7 && ./install.sh lnmp
或者 单独安装
安装nginx./install.sh nginx
安装数据库./install.sh db
有熟悉的镜像,也可以通过podman容器安装

2.6 安装LinkX

LinkX是免费的内网穿透工具,可以直接使用https访问,有了它,就可以在外网时操控家里的这台树莓派了,LinkX安装步骤如下:
2.6.1 当前树莓派安装的是LinkX-linux-arm64版本,所以安装LinkX-linux-arm64版本,执行
wget http://down.tthongbao.cn/LinkX-linux-arm64.tar.gz&&mkdir -p $HOME/LinkX && tar zxf LinkX-linux-arm64.tar.gz -C $HOME/LinkX && cd LinkX

2.6.2 打开https://u.rscode.cn , 点击自动生成配置文件,会自动生成LinkX的配置文件,然后替换掉压缩包里的同名文件appsettings.json;
rasp5.png

这个步骤,也可以在生成配置后,通过执行vi appsettings.json 进行手动修改其内容

2.6.3 修改LinkX权限,sudo chmod 777 $HOME/LinkX/LinkX

2.6.4 进入LinxX目录,运行./LinkX

2.6.5 设置LinkX为开机自动启动
在 /etc/supervisord.d/目录下创建应用的配置,文件名为linkx.ini,内容为

[program:linkx]
command= /root/LinkX/LinkX 
directory=/root/LinkX 
autorestart=true
stderr_logfile=/var/log/linkx.err.log
stdout_logfile=/var/log/linkx.out.log 
environment=ASPNETCORE_ENVIRONMENT=Production
user=root 
stopsignal=INT

加载supervisor配置
supervisorctl reload
现在己可以开机LinkX自动运行,清理下浏览器的cookie缓存,用浏览器访问绑定的网址,就可以操作内网中的树莓派了,记得通过passwd命令更换一下系统密码

总结:搜索网络上好多文章,并不适合树莓派3;系统版本选择是关键,配合web管理界面,会事半功倍,节省很多时间!!!

目录
相关文章
|
3月前
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
769 69
|
2月前
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
1077 2
|
3月前
|
Ubuntu Linux 索引
Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
387 78
|
2月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
571 16
|
3月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
332 10
|
3月前
|
运维 网络协议 Linux
CentOS下Bind服务的安装与故障排查
通过以上的步骤,您应该能够在CentOS系统上安装并配置BIND DNS服务,并进行基本的故障排查。
373 0
|
3月前
|
存储 Ubuntu Linux
安卓手机免root安装各种Linux系统:Ubuntu, Centos,Kali等
此外还可以安装Slackware、Archstrike等系统,还可以通过github查找方法安装更多有趣的东西。 昨日小编就是通过Termux安装的Kali Linux工具包。
|
4月前
|
Linux 网络安全 Apache
针对在Centos/Linux安装Apache过程中出现的常见问题集锦
以上每个问题的解决方案应深入分析错误日志、系统消息和各种配置文件,以找到根本原因并加以解决。务必保持系统和Apache软件包更新到最新版本,以修复已知的bugs和安全漏洞。安装和管理Web服务器是一项需要细致关注和不断学习的任务。随着技术的发展,推荐定期查看官方文档和社区论坛,以保持知识的更新。
239 80
|
4月前
|
人工智能 数据挖掘 Linux
Centos安装Python3.7(亲测可用)
本指南详细介绍了在基于Linux(以CentOS系统为例,使用yum包管理器)的系统上安装Python 3.7版本的完整流程。Python是一种广泛使用的高级编程语言,在各种领域如软件开发、数据分析、人工智能和区块链开发等都有着重要的应用。
490 2
|
5月前
|
机器人 Linux
CentOS 7系统中安装特定版本CMake 3.21.2的方法。
到这里,过程已经全部完成。如果你跟随上面的步骤来,那么你现在已经拥有了一个全新的CMake版本在你的CentOS 7系统上了。这个过程就像是你通过一系列仪式,唤醒了一个沉睡已久的古老机器人,它现在完全按照你的意愿来帮你构建和编译软件了。
499 18