在 CentOS 7.9 系統上手動安裝 .NET 8.0
SDK(使用本地的 dotnet-sdk-8.0.101-linux-x64.tar.gz
文件),可以按照以下步驟進行操作。由于 CentOS 7.9 已不再被微軟官方支持,可能會遇到依賴庫版本問題(如 GLIBCXX
和 GLIBC
),需要額外處理。
這個是下載包的鏈接下載 .NET 8.0 (Linux、macOS 和 Windows) | .NET,下載好以后記得傳到服務器上。
步驟 1:解壓 .NET SDK
將下載的 .tar.gz
文件解壓到指定目錄(例如 /usr/local/dotnet
):
sudo mkdir -p /usr/local/dotnet
sudo tar -xzf dotnet-sdk-8.0.101-linux-x64.tar.gz -C /usr/local/dotnet
步驟 2:設置環境變量
將 .NET
的路徑添加到系統環境變量中:
# 編輯環境變量配置文件
sudo vi /etc/profile.d/dotnet.sh
添加以下內容:
export PATH=$PATH:/usr/local/dotnet
export DOTNET_ROOT=/usr/local/dotnet
保存并退出,然后使配置生效:
source /etc/profile.d/dotnet.sh
步驟 3:驗證安裝
運行以下命令驗證 .NET SDK
是否安裝成功:
dotnet --version
如果輸出類似 8.0.101
,表示安裝成功。否則,跳到 步驟 4 處理依賴問題。
步驟 4:解決依賴庫問題
4.1 檢查?libstdc++
?版本
運行以下命令查看當前系統的 libstdc++
版本:
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
如果缺少 GLIBCXX_3.4.20
或更高版本,需升級 libstdc++
。以下是解決方法:
-
下載并替換
libstdc++.so.6
:-
從 libstdc++.so.6 下載地址 獲取新版本文件。https://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip
-
解壓并復制到
/usr/lib64/
:unzip libstdc.so_.6.0.26.zip sudo cp libstdc++.so.6.0.26 /usr/lib64/
-
-
創建符號鏈接:
sudo mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak sudo ln -s /usr/lib64/libstdc++.so.6.0.26 /usr/lib64/libstdc++.so.6
-
驗證更新:
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
確保輸出中包含
GLIBCXX_3.4.20
或更高版本。
4.2 檢查?glibc
?版本
運行以下命令查看 glibc
版本:
ldd --version
如果版本低于 2.18
,需升級 glibc
(需謹慎操作):
-
下載并編譯安裝
glibc-2.18
:wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz ##如果下載失敗可以使用其他鏡像源地址下載wget https://mirrors.tuna.tsinghua.edu.cn/gnu/glibc/glibc-2.18.tar.gztar -zxvf glibc-2.18.tar.gz cd glibc-2.18 mkdir build && cd build ../configure --prefix=/usr make -j$(nproc) sudo make install
-
驗證更新:
ldd --version
步驟 5:再次驗證?.NET
?安裝
完成依賴庫修復后,重新運行:
dotnet --version
如果仍然報錯,檢查以下內容:
- 確保?
.NET SDK
?解壓路徑正確(/usr/local/dotnet
)。 - 確保環境變量?
PATH
?和?DOTNET_ROOT
?設置正確。 - 如果遇到?
GLIBC_2.18
?錯誤,需重新編譯并安裝?glibc
。
步驟 6:測試?.NET
?應用
創建一個簡單的 .NET
控制臺應用以驗證是否能正常運行:
dotnet new console -o myapp
cd myapp
dotnet run
如果輸出 Hello World!
,表示安裝和配置均成功。
注意事項
-
系統兼容性:
- CentOS 7.9 已停止官方支持,建議考慮遷移到?CentOS Stream 8/9?或?RHEL 8/9。
- 如果必須使用 CentOS 7.9,需手動處理所有依賴問題(如?
libstdc++
、glibc
)。
-
依賴問題:
- 如果?
.NET
?仍無法運行,嘗試使用?.NET
?提供的?install-dotnet.sh
?腳本(需網絡連接):curl -sSL https://dot.net/v1/dotnet-install.sh | bash
- 如果?
-
長期解決方案:
- 使用 Docker 容器運行?
.NET
?應用,避免依賴沖突。
- 使用 Docker 容器運行?