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