簡體   English   中英

無法使用 Fedora 31 安裝 .NET Core 3.1

[英]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 存儲庫是內置的:

對我有用的是:

  1. 從包管理器中刪除舊存儲庫
sudo rm -rf /etc/yum.repos.d/microsoft-prod.repo
  1. 清理 dnf 緩存
sudo dnf clean all
  1. 刪除所有 dotnet 包
sudo dnf remove dotnet*

提示:如果您使用 fish 或 zsh 作為常規 shell,請在 bash 中運行該命令

  1. 並重新安裝 SDK:
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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM