[學習筆記].Net5專案打包到Linux系統服務時遇到的坑
阿新 • • 發佈:2022-02-15
如果按照官方文件的步驟手動安裝.Net5 會有一個坑:
在使用systemd打包.Net5服務的時候,無法執行,報錯如下圖:
查詢系統日誌發現對dotnet訪問沒有許可權,dotnet已設定許可權755並且service的配置檔案中User已配置為本人使用者
奇怪的是作為本人使用者登入在終端中使用dotnet是有許可權的。
好一番尋找發現,systemd會阻止位於使用者的主目錄(Home)中二進位制檔案的執行。
因此重新安裝,首先下載原始碼至/usr/local/src/
sudo wget -P /usr/local/src/ https://download.visualstudio.microsoft.com/download/pr/e10f8ecd-eb2c-42a0-a217-98a18517e12c/436b90a4d5be20456b210c406c0f7718/dotnet-sdk-5.0.405-linux-x64.tar.gz
建立名為dotnet主目錄並將二進位制檔案解壓至該目錄
sudo mkdir ../dotnet
sudo tar zxvf dotnet-sdk-5.0.404-linux-x64.tar.gz -C ../dotnet
開啟~/.bashrc檔案,末尾新增如下兩行配置DOTNET_ROOT環境變數
export DOTNET_ROOT=/usr/local/dotnet/
export PATH=$PATH:$DOTNET_ROOT
儲存並執行
source .bashr
用whereis命令檢視dotnet已經在規範的目錄中了