【干货分享】CentOS中离线部署ASP.NET8.0

科技   2024-08-21 22:01   北京  


关于ASP.NET8.0的环境部署,常见的有三种方式:
1、容器化部署,自带运行时

2、在线安装运行时环境

3、离线安装运行时环境

容器化目前对大型微服务项目,或者是敏捷开发等模式,有十分重要的,且具有不可替代的作用。但是平时我们遇到的大多数项目体量达不到,容器化就显得性价比不那么高,无论是学习曲线还是运维上,都需要一个技能比较高的团队来控制。

所以,这两年对单体部署的呼声,也就越来越高,无论是.NET还是JAVA,直接发布部署,快速上线,最多再配上一个轻量级的网关和服务注册中心,已经完全足够。



今天主要讨论的就是关于单体部署的另一种方式——离线部署,就是在不联网的情况下,在Linux系统中安装运行时,运行项目,本文以CentOS举例。


PS:不过CentOS已经于2024年6月30日停止全面停服了,大家可以慢慢的选择其他的Linux系统了,国产的一些,或者Debian都是不错的选择。





1、下载运行时安装包




打开官网地址,下载Linux的二进制文件。

https://dotnet.microsoft.com/en-us/download/dotnet/8.0




2、离线安装运行时




1、拷贝安装包到指定文件夹

2、解压tar zxvf aspnetcore-runtime-8.0.8-linux-x64.tar.gz

3、切换到指定目录,执行dotnet


这个时候,发现报错了,我用的是CentOS7.6的腾讯云的服务器:

./dotnet: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./dotnet)


这个意思是.net8.0运行时的安装,需要20和21版本的libstdc++版本,巧的是CentOS官方已经不更新了。

微软官方是这么说的

https://github.com/dotnet/sdk/issues/31893



这个东西是一个很重要的文件,在Linux系统中,发挥着很大的作用,是很多软件的底层依赖:

libstdc++.so 是 C++ 程序运行所必需的标准库文件,提供了核心的 C++ 标准功能。它是由 GCC 提供的,所有依赖 GNU C++ 标准库的程序在运行时都需要这个库文件。



3、离线安装依赖包


1、先看看系统中,版本最高到了多少了,执行命令:

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

可以看到目前最多是到了3.4.19

2、这个文件基本都是在/usr/lib64文件夹中

3、那既然版本不高,就需要升级版本,升级有很多种,有编译源代码的,有从网上下载别人文件的,覆盖就行,当然,覆盖前,一定要做好备份!!!

我这里有一个可以用的,直接下载吧,也是从网上找的:

https://pan.baidu.com/s/1XKkoh3npIE-UMmM3YTfqxA?pwd=8r74

提取码: 8r74

当然还是尽量从官网下载,如果公司有要求的话,一些靠谱的网站有

http://www.rpmfind.net/

https://pkgs.org/


也可以直接搜索服务器里的其他地方,比如docker挂载的镜像容器依赖里是有的。


4、直接覆盖原文件,然后执行上边的命令,就可以看到变化了



5、运行dotnet命令,嘎嘎好使了


BCVP代码创新社
专注于 NetCore 相关技术栈的推广,致力于前后端之间的完全分离,从壹开始,让每一个程序员都能从这里学有所成。
 最新文章