Centos 6.10下安装.Net Core

.Net Core官方文档里说明支持最低版本为Centos 7系,所以按照官网的安装方式 sudo yum install dotnet-sdk-3.1 会提示失败。

 

参考网络上的文章,亲测如下方式有效:

 

1、查看系统版本, 升级系统基本lib库

[root@test ~]# cat /etc/redhat-release
CentOS release 6.10 (Final)
[root@test ~]# yum update     //可以执行此步骤,减少后面lib库依赖的痛苦。

 

2.下载linux版本的安装包,并解压到指定目录

https://download.visualstudio.microsoft.com/download/pr/8c995929-4057-41cc-b183-e23f1edb5219/b3f41ad92681fc7e329d05b2f8819463/dotnet-sdk-3.1.403-rhel.6-x64.tar.gz 

我选择的最新版,选择rhel版本

[root@test ~]#cd /usr/local/src
[root@test src]#mkdir -p /usr/local/dotnetcore
[root@test src]#tar -zxf dotnet-sdk-3.1.403-rhel.6-x64.tar.gz  -C /usr/local/dotnetcore

3、添加net core环境变量

[root@test src]# vi /etc/profile

增加以下几行

#set dotnet core
export DOTNET_ROOT=/usr/local/dotnetcore
export PATH=$PATH:$DOTNET_ROOT

#生效环境变量

[root@test src]#source /etc/profile

 

 

4、查看dotnet 版本

[root@test src]# dotnet --version

通常都会遇到 提示缺少ICU这个问题。
FailFast:
Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.

   at System.Environment.FailFast(System.String)
 
   at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode()

   at System.Globalization.GlobalizationMode..cctor()

   at System.Globalization.CultureData.CreateCultureWithInvariantData()

   at System.Globalization.CultureData.get_Invariant()

   at System.Globalization.CultureInfo..cctor()

   at System.StringComparer..cctor()

   at System.AppDomain.InitializeCompatibilityFlags()

   at System.AppDomain.Setup(System.Object)

Aborted (core dumped)

 


5.解决ICU报错问题

要么选择安装icu,但我yum insall icu后也还是报这个错,目前无解。

根据另一个网友的文章,采用 如下2和3问题可以解决,在dotnet的运行时环节里的netcore.runtimeconfig.json里按照下面的配置方法改掉,可以。
以独立部署 (SCD)的方式发包,运行时报错
错误信息:FailFast: Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.
解决方法有三
1、安装icu库,运行命令:yum install icu
2、项目配置文件
.runtimeconfig.json,加入以下配置
{"runtimeOptions": { "configProperties": { "System.Globalization.Invariant": true } } }
3、项目csproj添加以下配置
<ItemGroup>
<RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
</ItemGroup>


6.编译运行时报错

虽然整个dotnet 环境已经没问题,但在dotnet new project后,编译运行时还是提示缺少ICU问题,估计是.net core代码里写死了
通过google到一篇国外文章,在一个很不显眼的地方有大拿提示了这个方法,通过命令行或者直接和上面设置环境变量一样,导出这样一个参数,一切OK !

export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1


7.参考资料
https://www.cnblogs.com/gaibianziji/p/10217001.html
https://www.cnblogs.com/wuxubiao/p/9929569.html






 

posted @ 2020-11-02 09:19  cehui0303  阅读(919)  评论(0编辑  收藏  举报