ASP.NET Core 打包net8.0框架在Linux CentOS7上部署问题

问题1

libstdc++.so.6版本过低。 CentOS7默认安装的gcc版本太低,达不到.net8的启动条件。

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

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

解决方法:

进入/usr/lib64目录

cd /usr/lib64

查看运行环境/libstdc++.so.6中GLIBCXX的版本,发现确实没有GLIBCXX_3.4.20和GLIBCXX_3.4.21。

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

下载更高版本的替换了就可以了。把高版本的libstdc++.so.6.0.26 直接放入到**/usr/lib64**目录下就可以,然后更新软连接。

删除旧链接

rm -rf libstdc++.so.6

建立新连接

ln -s libstdc++.so.6.0.26 libstdc++.so.6

重新查看动态库

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

问题2:

Process terminated. Couldn't find a valid ICU package installed on the system。

ICU是一个广泛使用的开源库,用于支持Unicode和全球化软件。许多应用程序和框架,如Python的某些库、Node.js的某些模块等,都依赖于ICU库来处理国际化相关的功能。

全球化和 ICU - .NET | Microsoft Learn详细了解:.NET 全球化和 ICUhttps://learn.microsoft.com/zh-cn/dotnet/core/extensions/globalization-icu#icu-on-webassembly

解决方法:

让应用能够携带和使用其自己的 ICU 副本。

1.给项目安装NUGET包Microsoft.ICU.ICU4C.Runtime,目前最新版是72.1.0.3。

2.编辑项目csproj文件,在根节点下加入如下代码,其中的Value需要与上面安装的NUGET包版本号一致

复制代码
	<ItemGroup>
		<RuntimeHostConfigurationOption Include="System.Globalization.AppLocalIcu" Value="72.1.0.3"/>
	</ItemGroup>

3.以独立模式重新发布程序,发布后的程序中会多出几个icu相关的库文件,即可在Linux上运行了

然后会发现打包后的文件夹多出三个文件

问题3

当运行可执行文件(如 ./IDT_net)并遇到错误 "-bash: ./IDT_net: 权限不够" 时,这通常意味着该文件没有执行权限。

查看当前目录下所有文件的权限信息

ls -l IDT_net

为文件所有者添加执行权限

chmod u+x IDT_net

相关推荐
我不会起名字32210 分钟前
K8s 节点磁盘打满导致 Pod 被驱逐:4 类占用与回收顺序
运维·kubernetes·k8s·diskpressure·evicted
雪落漂泊19 分钟前
Linux进程(五):进程地址空间篇
linux·运维·服务器
瑞克-桑切斯30 分钟前
docker mail商城
运维·docker·容器
AR-26710-1 小时前
Linux Day32——网络,ROCE-IB与以太网
linux·运维
不庸.2 小时前
WPScan 实战入门:从 Docker 靶场到弱密码爆破
运维·安全·web安全·docker·容器·安全性测试·wpscan
wdeok2 小时前
Socket编程Tcp
服务器·网络·tcp
千舟软件3 小时前
报修系统对接企业微信和钉钉的3种方式_千舟报修云
服务器·钉钉·企业微信
Decay__4 小时前
SQL Server 数据库全栈运维实战系列 — 合集索引(24 篇)
运维·数据库·sql·mysql·架构
Decay__12 小时前
12_MySQL InnoDB 内存与锁调优 —— Buffer Pool、redo log、隔离级别与锁等待
运维·数据库·sql·mysql·架构
java_logo14 小时前
Docker 部署 Dify:轻松搭建 LLM 应用开发平台
运维·docker·容器