この記事は公開から1年以上経過しています。
Linux(Ubuntu)にapt(Microsoftフィード)で.NET 7.0 SDKをインストールしてdotnet --info
を表示しても
.NET SDKs installed:
no sdks were found.
のようにSDKが認識されない状態となってしまっていたため、そのときの解決策についての備忘録。
対応
-
以下のコマンドで.NET 7.0 SDKを一旦削除する。
sudo apt remove dotnet-sdk-7.0
上記でうまく行かない場合は以下のコマンドで.NET SDK/Runtime関連のパッケージを全削除する方法もあります。
sudo apt remove 'dotnet*' 'aspnet*' 'netstandard*'
パッケージを削除すると他のパッケージの依存関係が壊れてプログラムが起動しなくなったり、システム自体が起動しなくなる場合もあります。
削除対象パッケージや表示されるメッセージを十分確認して慎重に作業してください(At your own risk!)。 -
Microsoftフィードのパッケージリストとインストールされた関連ファイルを削除する。
sudo dpkg --purge packages-microsoft-prod
-
Ubuntuのバージョンに一致するパッケージリポジトリを再設定する。
declare repo_version=$(if command -v lsb_release &> /dev/null; then lsb_release -r -s; else grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"'; fi) wget https://packages.microsoft.com/config/ubuntu/$repo_version/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
-
.NET 7.0 SDKを再インストールする。
sudo apt update sudo apt install dotnet-sdk-7.0
上記手順完了後に再度dotnet --info
コマンドを実行すると、インストールされたSDKバージョンが表示されるようになっていると思います。
ちなみに私自身はこの記事を書いた後でMicrosoftリポジトリのパッケージをやめ、公式リポジトリのパッケージを使用するように変更しました。
(パッケージ混在で競合が起きている感じがしたので…)
参考ウェブサイトなど
-
stackoverflow
dotnet sdk is installed but not recognized – Linux Ubuntu/popOS 22.04 -
Microsoft Learn
Ubuntu に .NET SDK または .NET ランタイムをインストールする -
Microsoft Learn
Linux 上で見つからないファイルに関連する .NET エラーのトラブルシューティング
以上です。