アップデート後に dotnet にアクセスできません。dotnet と vscode を再インストールしても解決しませんでした。
Ubuntu 22.04 で実行すると、dotnet --info
次の出力が生成されます。
致命的なエラーが発生しました。フォルダ [/usr/share/dotnet/host/fxr] が存在しません
ベストアンサー1
.NET (Core) が Linux 向けに初めてリリースされたとき、公式の Ubuntu リポジトリではまだ利用できませんでした。そのため、代わりに多くの人が Microsoft APT リポジトリを追加してインストールしました。
現在、パッケージは Ubuntu リポジトリの一部であり、Microsoft パッケージと競合しています。このエラーは、パッケージの混在によって発生します。
したがって、どちらを使用するかを選択し、混在しないようにする必要があります。個人的には、Microsoft パッケージの方が最新の状態に保たれると考え、Microsoft パッケージを使用することにしました。
まず、既存のパッケージをすべて削除してクリーンな状態にします。
sudo apt remove dotnet* aspnetcore* netstandard*
次に、 に次の内容のファイルを作成します/etc/apt/preferences.d
(99microsoft-dotnet.pref
このようなディレクトリ内のファイルは通常、予測可能な順序で並べ替えおよびロードされるように 2 桁の数字がプレフィックスとして付けられるという規則に従って*.d
、 という名前を付けました)。
Package: *
Pin: origin "packages.microsoft.com"
Pin-Priority: 1001
次に、通常のアップデートとインストールを実行します。
sudo apt update && sudo apt install -y dotnet-sdk-8.0
上記の例では .NET 8 を示していますが、必要に応じて別のバージョンに置き換えてください。.NET SDK は並行してインストールされるため、複数のバージョンをインストールすることもできます。
公式のUbuntuパッケージを使用する場合上記のように既存のパッケージをすべて削除しますが、エントリを作成する代わりに/etc/apt/preferences.d
、Microsoft リポジトリを削除するだけです。
sudo rm /etc/apt/sources.list.d/microsoft-prod.list
sudo apt update
sudo apt install dotnet-sdk-7.0
ただし、Microsoft リポジトリには PowerShell、SQL Server コマンドライン ツールなどの他のパッケージも含まれているため、削除することは望ましくないことに注意してください。
APT 構成をこれらのパッケージだけに限定することは可能だと思いますが、今のところはこれでうまくいっています。Microsoft と Ubuntu が協力して、この問題を解決してくれることを期待しています。
この問題とさまざまな解決策に関する詳細情報は、こちらをご覧ください: