OpenEuler学习笔记(十四):在OpenEuler上搭建.NET运行环境

一、在OpenEuler上搭建.NET运行环境

基于包管理器安装

  1. 添加Microsoft软件源 :运行命令sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm,将Microsoft软件源添加到系统中,以便后续能够从该源安装.NET相关的包。
  2. 安装.NET运行时或SDK :若只需要运行.NET应用程序,可安装运行时。比如安装ASP.NET Core运行时,执行sudo dnf install aspnetcore-runtime-8.0。如果要进行.NET开发,则安装SDK,命令为sudo dnf install dotnet-sdk-8.0。可根据实际需求替换版本号。
  3. 验证安装 :安装完成后,可以通过dotnet --info命令来查看.NET的安装信息,确认是否安装成功。也可以使用dotnet --list-runtimes查看已安装的运行时列表。

基于二进制文件安装

  1. 下载.NET二进制文件 :从.NET官方网站下载适合OpenEuler系统的.NET二进制文件,例如dotnet-sdk-8.0.203-linux-x64.tar.gz
  2. 解压文件 :创建一个目录用于存放解压后的文件,如mkdir -p $HOME/dotnet,然后解压下载的文件到该目录,tar zxf dotnet-sdk-8.0.203-linux-x64.tar.gz -C $HOME/dotnet
  3. 配置环境变量 :如果使用bash shell,将环境变量添加到~/.bashrc文件,执行echo 'export DOTNET_ROOT=$HOME/dotnet' >> ~/.bashrcecho 'export PATH=$PATH:$HOME/dotnet' >> ~/.bashrc。若是zsh shell,则添加到~/.zshrc文件。添加完后执行source ~/.bashrcsource ~/.zshrc使环境变量生效。
  4. 验证安装 :使用dotnet --infodotnet --list-runtimes命令验证安装是否成功。

基于容器安装

  1. 拉取.NET容器镜像 :可以从openeuler-docker-images等镜像仓库拉取.NET相关的容器镜像,例如docker pull openeuler/dotnet-aspnet:8.0.3-oe2203sp3
  2. 运行容器 :使用docker run命令来运行容器,如docker run -it --name dotnet-aspnet-container openeuler/dotnet-aspnet:8.0.3-oe2203sp3,可以根据实际需求添加端口映射、挂载数据卷等参数。

二、在OpenEuler上部署基于.NET的应用程序

准备工作

  1. 安装.NET运行时环境:确保OpenEuler系统已安装适合应用程序版本的.NET运行时。如果应用程序是基于.NET Core 3.1开发的,需安装.NET Core 3.1运行时;若基于.NET 8开发,则安装.NET 8运行时。可通过包管理器或二进制文件的方式安装,具体操作参考上文。
  2. 获取应用程序文件 :将基于.NET的应用程序文件(包括.dll文件、相关配置文件等)准备好,可以通过从代码仓库拉取、从本地复制或通过网络传输等方式获取到OpenEuler服务器上的指定目录,如/opt/apps/myapp

配置应用程序

  1. 配置文件修改 :根据实际部署环境,修改应用程序的配置文件,如appsettings.json。可能需要修改数据库连接字符串、日志路径、缓存配置等信息。比如将数据库连接字符串中的服务器地址修改为实际的数据库服务器地址。
  2. 环境变量设置 :根据应用程序需求,设置相应的环境变量。如果应用程序需要读取某个环境变量来确定运行模式,可以使用sudo vim /etc/profile命令打开配置文件,在文件末尾添加export MY_APP_ENV=production,保存并退出后,执行sudo source /etc/profile使环境变量生效。

部署应用程序

  1. 使用dotnet命令运行 :进入应用程序所在目录,使用dotnet命令运行应用程序。例如应用程序的主项目文件是MyApp.dll,则执行dotnet MyApp.dll。若应用程序有特定的启动参数,可在命令后添加,如dotnet MyApp.dll --server.urls=http://localhost:5000

  2. 作为服务运行 :为了便于管理和监控,可以将应用程序配置为系统服务。创建一个.service文件,如sudo vim /etc/systemd/system/myapp.service,在文件中输入以下内容:

    [Unit]
    Description=My.NET Application
    After=network.target

    [Service]
    WorkingDirectory=/opt/apps/myapp
    ExecStart=/usr/bin/dotnet /opt/apps/myapp/MyApp.dll
    Restart=always
    RestartSec=10
    SyslogIdentifier=myapp
    User=root
    Group=root

    [Install]
    WantedBy=multi-user.target

保存并退出后,执行sudo systemctl enable myapp.service将服务设置为开机自启,然后使用sudo systemctl start myapp.service启动服务。

验证与监控

  1. 验证应用程序 :在浏览器中输入应用程序的访问地址,如http://localhost:5000,查看应用程序是否正常运行,能否正确显示页面和执行相关功能。也可以使用curl命令进行测试,如curl http://localhost:5000/api/values,检查是否能获取到正确的响应数据。
  2. 监控应用程序 :可以使用systemctl status myapp.service命令查看服务的运行状态和日志信息。还可以结合ELK(Elasticsearch、Logstash、Kibana)等日志管理工具来收集和分析应用程序的日志,以便及时发现和解决问题。
相关推荐
Future_yzx30 分钟前
算法基础学习——快排与归并(附带java模版)
学习·算法·排序算法
三次拒绝王俊凯2 小时前
记忆力训练day08
学习
zwhSunday3 小时前
线程概念、操作
linux·线程
_zwy3 小时前
【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章
linux·运维·c++·深度学习·神经网络
Xiaouuuuua3 小时前
多项日常使用测试,带你了解如何选择AI工具 Deepseek VS ChatGpt VS Claude
笔记
学游戏开发的4 小时前
UE求职Demo开发日志#12 完善击杀获得物品逻辑和UI
笔记·游戏引擎·unreal engine
半夏云流4 小时前
CMake常用命令指南(CMakeList.txt)
linux·makefile·cmake
英国翰思教育4 小时前
留学毕业论文如何利用不同问题设计问卷
人工智能·深度学习·学习·算法·学习方法·论文笔记
eggcode4 小时前
【CSS入门学习】Flex布局设置div水平、垂直分布与居中
css·学习
鲁子狄5 小时前
[笔记] 极狐GitLab实例 : 手动备份步骤总结
linux·运维·笔记·ubuntu·centos·gitlab