.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