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






 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM