翼度科技»论坛 编程开发 .net 查看内容

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

14

主题

14

帖子

42

积分

新手上路

Rank: 1

积分
42
首先下载centos07镜像,建议使用阿里云推荐的地址:
  1. https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spm=a2c6h.25603864.0.0.59b5f5ad5Nfr0X
复制代码

 其实这里就已经出现第一个坑了
centos  07 /usr/lib64/ 的 libstdc++.so只支持到19;

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

net 8运行就会报错,因为它需要GLIBCXX_3.4.20和GLIBCXX_3.4.21(其实就是NET8 不支持CENTOS 07,我们硬要它支持)
  1. dotnet: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by dotnet)
  2. dotnet: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by dotnet)
复制代码
既然遇到了并能解决问题,那么如果一开始就用centos更高的版本,是不是就能直接避免这些问题;当然那是后话,以下还是讲述07版本走出大坑

下载以及安装过程就省略掉了;顺便提供以下VM17的激活码
  1. 激活码:JU090-6039P-08409-8J0QH-2YR7F
复制代码
先配置下网络
编辑里,点击首选项,然后在表格里选择自己的虚拟机,还原默认设置
解释一下,后面要通过WGET命令 下载环境包,然后命令行会提示网络不允许;最后百度了一番,这么操作就可以了。

 在 /home 下新建dotnet 文件夹,然后下载NET 8 SDK 和runtime(其实安装其中一个就行了,我看别人安装的都是runtime,我选择安装sdk,net8 sdk 里是包含runtime的)
  1. 虚拟机拖拽命令
  2. systemctl enable run-vmblock\\x2dfuse.mount # 开机自启
  3. systemctl start run-vmblock\\x2dfuse.mount # 启动服务
  4. sdk 下载地址
  5. wget https://download.visualstudio.microsoft.com/download/pr/dd6ee0c0-6287-4fca-85d0-1023fc52444b/874148c23613c594fc8f711fc0330298/dotnet-sdk-8.0.302-linux-x64.tar.gz
  6. runtime 下载地址
  7. wget https://download.visualstudio.microsoft.com/download/pr/ce31d92b-b514-4f9c-843b-29c466871369/b332eba5641cbc6eed1e3a98480972d2/aspnetcore-runtime-8.0.6-linux-x64.tar.gz
复制代码

 
  1. 解压路径
  2. mkdir dotnet
  3. mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-8.0.302-linux-x64.tar.gz -C $HOME/dotnet
  4. export DOTNET_ROOT=$HOME/dotnet
  5. export PATH=$PATH:$HOME/dotnet
  6. 保存到环境变量
  7. echo 'export PATH=$PATH:$HOME/dotnet' >> ~/.bashrc
  8. echo 'export DOTNET_ROOT=$HOME/dotnet' >> ~/.bashrc
  9. source ~/.bashrc
  10. dotnet --version
  11. dotnet --info
复制代码
这时候你执行dotnet --version 应该就会报错了,
这时候我就开始踩坑了
网上帖子说用yum 更新 libstdc.so 还有什么编译新版本GCC??????????????
就这么按照指点操作了很久,失败了很多次,怀疑人生了很多次,差点就去试图下载centos 07+版本,或者试图把NET8降下来;把系统搞乱了,也重装了好几次,(还好是虚拟机,快得很)
可能是哪些老前辈版本跟我不一样导致没成功吧!!!!!
  1. 其实就是下载一个libstdc++.so.6.0.26 放到 usr/lib64下,
  2. 然后做一个软连接所有访问libstdc++.so.6指向libstdc++.so.6.0.26
复制代码
就能让net8 在 centos 07 上成功部署以及运行 net core简单案例
 
 下载,上传,解压过程我就跳过了鸭
以下提供软连接命令
  1. 下载链接: libstdc.so.6.0.26 将压缩包放置/usr/lib64目录下
  2. cd /usr/lib64
  3. unzip libstdc.so_.6.0.26.zip
  4. rm libstdc++.so.6
  5. ln -s libstdc++.so.6.0.26 libstdc++.so.6
复制代码

 

 这时候在执行 dotnet命令检查环境
  1. dotnet --version
  2. dotnet --info
复制代码
应该会如下所示

 我就猜到net8 sdk 里包含了 runtime (因为我win10 net8 就一个sdk,不过之前net5 SDK 还要依赖 net core 2.1 rutime)
然后随便建一个简单的 rest api 发布后再windows 下运行

 

 将文件拷贝到linux 上,在文件里路劲里
  1. dotnet WebApplication1.dll
复制代码
 
这时候我们应该设置网络端口和虚拟机互通,然后在物理机上访问虚拟机
结果,,,,
结果我手贱去点了一下linux 命令行的locslhost:5000 (因为它提示能点)
原来高版本的VM已经自带可视化操作了,还内置火狐LINUX版

对于LINUX centos 环境部署 net8 microsoft还提供了更简单的支持,脚本安装
 
  1. 以下是脚本自动安装NET 8  
  2. wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
  3. chmod +x ./dotnet-install.sh
  4. ./dotnet-install.sh --version latest
  5. 若要安装 .NET 运行时而非 SDK,请使用 --runtime 参数。
  6. ./dotnet-install.sh --version latest --runtime aspnetcore
复制代码
它会下载这么个玩意,然后去安装,默认会按照最新版本的SDK去安装,想安装其他版本,或者rintime也可以更改上方命令行实现

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

来源:https://www.cnblogs.com/Gao1234/p/18263832
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具