虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

  • 虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全已关闭评论
  • 23 次浏览
  • A+
所属分类:.NET技术
摘要

首先下载centos07镜像,建议使用阿里云推荐的地址:  其实这里就已经出现第一个坑了

首先下载centos07镜像,建议使用阿里云推荐的地址:

https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spm=a2c6h.25603864.0.0.59b5f5ad5Nfr0X

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

 其实这里就已经出现第一个坑了

centos  07 /usr/lib64/ 的 libstdc++.so只支持到19;

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

GLIBCXX会缺失3.4.20以后所有的版本

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

net 8运行就会报错,因为它需要GLIBCXX_3.4.20和GLIBCXX_3.4.21(其实就是NET8 不支持CENTOS 07,我们硬要它支持)

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

既然遇到了并能解决问题,那么如果一开始就用centos更高的版本,是不是就能直接避免这些问题;当然那是后话,以下还是讲述07版本走出大坑

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

下载以及安装过程就省略掉了;顺便提供以下VM17的激活码

激活码:JU090-6039P-08409-8J0QH-2YR7F

先配置下网络

编辑里,点击首选项,然后在表格里选择自己的虚拟机,还原默认设置

解释一下,后面要通过WGET命令 下载环境包,然后命令行会提示网络不允许;最后百度了一番,这么操作就可以了。

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

 在 /home 下新建dotnet 文件夹,然后下载NET 8 SDK 和runtime(其实安装其中一个就行了,我看别人安装的都是runtime,我选择安装sdk,net8 sdk 里是包含runtime的)

虚拟机拖拽命令 systemctl enable run-vmblock\x2dfuse.mount # 开机自启  systemctl start run-vmblock\x2dfuse.mount # 启动服务   sdk 下载地址 wget https://download.visualstudio.microsoft.com/download/pr/dd6ee0c0-6287-4fca-85d0-1023fc52444b/874148c23613c594fc8f711fc0330298/dotnet-sdk-8.0.302-linux-x64.tar.gz  runtime 下载地址 wget https://download.visualstudio.microsoft.com/download/pr/ce31d92b-b514-4f9c-843b-29c466871369/b332eba5641cbc6eed1e3a98480972d2/aspnetcore-runtime-8.0.6-linux-x64.tar.gz

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

 

解压路径 mkdir dotnet mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-8.0.302-linux-x64.tar.gz -C $HOME/dotnet  export DOTNET_ROOT=$HOME/dotnet export PATH=$PATH:$HOME/dotnet  保存到环境变量 echo 'export PATH=$PATH:$HOME/dotnet' >> ~/.bashrc echo 'export DOTNET_ROOT=$HOME/dotnet' >> ~/.bashrc source ~/.bashrc  dotnet --version dotnet --info

这时候你执行dotnet --version 应该就会报错了,

这时候我就开始踩坑了

网上帖子说用yum 更新 libstdc.so 还有什么编译新版本GCC??????????????

就这么按照指点操作了很久,失败了很多次,怀疑人生了很多次,差点就去试图下载centos 07+版本,或者试图把NET8降下来;把系统搞乱了,也重装了好几次,(还好是虚拟机,快得很)

可能是哪些老前辈版本跟我不一样导致没成功吧!!!!!

其实就是下载一个libstdc++.so.6.0.26 放到 usr/lib64下,  然后做一个软连接所有访问libstdc++.so.6指向libstdc++.so.6.0.26

就能让net8 在 centos 07 上成功部署以及运行 net core简单案例

 

 下载,上传,解压过程我就跳过了鸭

以下提供软连接命令

下载链接: libstdc.so.6.0.26 将压缩包放置/usr/lib64目录下 cd /usr/lib64 unzip libstdc.so_.6.0.26.zip rm libstdc++.so.6 ln -s libstdc++.so.6.0.26 libstdc++.so.6

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

 

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

 这时候在执行 dotnet命令检查环境

dotnet --version dotnet --info

应该会如下所示

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

 我就猜到net8 sdk 里包含了 runtime (因为我win10 net8 就一个sdk,不过之前net5 SDK 还要依赖 net core 2.1 rutime)

然后随便建一个简单的 rest api 发布后再windows 下运行

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

 

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

 将文件拷贝到linux 上,在文件里路劲里

dotnet WebApplication1.dll

 

这时候我们应该设置网络端口和虚拟机互通,然后在物理机上访问虚拟机

结果,,,,

结果我手贱去点了一下linux 命令行的locslhost:5000 (因为它提示能点)

原来高版本的VM已经自带可视化操作了,还内置火狐LINUX版

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

对于LINUX centos 环境部署 net8 microsoft还提供了更简单的支持,脚本安装

 

以下是脚本自动安装NET 8   wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh chmod +x ./dotnet-install.sh ./dotnet-install.sh --version latest  若要安装 .NET 运行时而非 SDK,请使用 --runtime 参数。 ./dotnet-install.sh --version latest --runtime aspnetcore

它会下载这么个玩意,然后去安装,默认会按照最新版本的SDK去安装,想安装其他版本,或者rintime也可以更改上方命令行实现

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

 

这个安装的比较简单,一行一行往下执行就行了;但是也会遇到我说的哪些环境问题(该解决的还是得解决)

全剧终