[英]Cannot install .NET Core 3.1 using Fedora 31
我按照以下鏈接使用 Fedora 31 安裝 .NET Core 3.1 的文檔: https : //docs.microsoft.com/en-us/dotnet/core/install/linux-package-manager-fedora30
我運行的命令是:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo wget -q -O /etc/yum.repos.d/microsoft-prod.repo https://packages.microsoft.com/config/fedora/30/prod.repo
其次是:
sudo dnf install dotnet-sdk-3.1
它不斷報告未找到包。 見終端輸出:
Last metadata expiration check: 1:14:48 ago on Thu 05 Dec 2019 15:44:56 GMT.
No match for argument: dotnet-sdk-3.1
Error: Unable to find a match: dotnet-sdk-3.1
文檔錯了嗎?
從 Fedora 32 開始,dotnet SDK 存儲庫是內置的:
對我有用的是:
sudo rm -rf /etc/yum.repos.d/microsoft-prod.repo
sudo dnf clean all
sudo dnf remove dotnet*
提示:如果您使用 fish 或 zsh 作為常規 shell,請在 bash 中運行該命令
sudo dnf install dotnet-sdk-3.1
你之前輸入過sudo dnf update嗎? 我剛剛安裝在 Fedora 31 中並且運行良好。
這往往發生在從 fedora 30 升級到 31 並且之前安裝了 dotnet core 版本的系統上。
我去核並刪除了我所有的 dotnet 共享文件夾(警告!您將丟失所有 dotnet 引用):
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/bin/dotnet
sudo rm -rf /etc/yum.repos.d/microsoft-prod.repo
sudo wget -q -O /etc/yum.repos.d/microsoft-prod.repo https://packages.microsoft.com/config/fedora/30/prod.repo
然后我找到了https://unix.stackexchange.com/questions/505625/fedora-29-repo-issue 。
然后運行以下命令:
sudo dnf clean all
sudo dnf upgrade
在此之后,我再次嘗試安裝,並且成功了:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo wget -q -O /etc/yum.repos.d/microsoft-prod.repo https://packages.microsoft.com/config/fedora/30/prod.repo
sudo dnf install dotnet-sdk-3.1
我不清楚為什么這有效。 會教我把我的軟呢帽系統當作寵物! :)
將我的系統從 Fedora 31 升級到 Fedora 32 后,我的 dotnet 命令被錯誤消息破壞了。
It was not possible to find any installed .NET Core SDKs
dotnet 核心包是在升級之前使用問題中描述的方法安裝的。
在檢查了我的系統上有哪些 dotnet 軟件包之后
sudo dnf list installed 'dotnet*'
該列表還顯示了 SDK 2.1、2.2 和 3.1。
為了解決這個問題,我嘗試通過刪除 dotnet-sdk-3.1
sudo dnf remove dotnet-sdk-3.1
並清理了 dnf 緩存
sudo dnf clean all
但是重新安裝后問題依舊。
我的解決方案是刪除上面使用 dnf 命令列出的所有dotnet 包。
在那之后,我跑了
sudo dnf install dotnet-sdk-3.1
問題得到了解決。
我嘗試在 Fedora 32 上安裝dotnet-sdk-3.1
,而之前沒有安裝 dotnet。 但是,我無法使其與 dnf 一起使用,我總是得到:
It was not possible to find any installed .NET Core SDKs
。
我的解決方案是從https://dotnet.microsoft.com/download/dotnet-core下載 Linux x64 二進制文件,將 tar.gz 解壓縮到一個目錄,然后將該目錄添加到路徑中。
SDK安裝位置導致的問題。 當您運行命令時: dnf rq -l dotnet-sdk-3.1
它表明 sdk 安裝在 /usr/share/dotnet/ 下,而不是 /usr/lib64/dotnet/ 安裝實際可執行文件的位置。
當您檢查位置時,您會發現那里安裝了更多,就像他們想移動軟件的位置但做了一半的工作。 所以我所做的……將所有內容都移到了 /usr/lib64/dotnet/,然后將文件夾 /usr/share/dotnet 替換為指向 /usr/lib64/dotnet 的鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.