2023/08/25

Ubuntu 22.04.3 LTSへ.NET SDK 7のインストール

 昨日相当な時間掛けて色々とやりました。.NET SDK 7のインストール。アイビー先生に質問したりグーグル先生にお願いしたりと試してましたが原因不明でRuntimeはインストールされるけどSDKが入らない。インストールでエラー出てませんか?と言われても出ていれば気が付く。Microsoftの説明通りにやってもダメ。色々な場所の説明通りでもダメ。まあ、ダメな方法しかないのでAI駆使しても情報源が無ければ当然ながら解決不能。

そんな中でも若干の情報的に複数のリポジトリからパッケージが提供されているとバージョンにあったものが的確にダウンロードされなくて問題になるという事。そんな感じのQiitaの記事もあったんです。ただ、そこではUbuntuのリポジトリからソース化されない様にしてインストールする方法。これも試してましたがNGでした。調べる中でMicrosoftのトラブルシューティングに上手く出来なきゃディストリビューションのリポジトリからインストールしてみてって事でした。なので、まずはこれまでのゴミを削除するのに

sudo apt remove 'dotnet*' 'aspnet*' 'netstandard*'
sudo apt purge 'dotnet*' 'aspnet*' 'netstandard*'
sudo rm -fr /usr/share/dotnet

としてクリーンナップして、/etc/apt/preferencesファイルを

sudo vim /etc/apt/preferences

としてエディター起動して

Package: dotnet* aspnet* netstandard*
Pin: origin "packages.microsoft.com"
Pin-Priority: -10

という内容で作成。いざ、インストールという事で

sudo apt update
sudo apt install dotnet-sdk-7.0

とするんですが、update後にupgrade出来るのがあるよって言われてupgradeすると、既に要らないから削除するならremoveだよ的ステップ踏んでのインストールでした。無事に出来ているか確認するのに

dotnet --list-sdks
dotnet --version

で確認するんですが、散々苦労してたのはインストール後にこのコマンド使ってもSDKは表示されないし、バージョンの方は何やら2つの可能性があるよって表示されたりします。

dotnet --info

で情報表示すると

.NET SDK:
 Version:   7.0.110
 Commit:    ba920f88ac

ランタイム環境:
 OS Name:     ubuntu
 OS Version:  22.04
 OS Platform: Linux
 RID:         ubuntu.22.04-x64
 Base Path:   /usr/lib/dotnet/sdk/7.0.110/

Host:
  Version:      7.0.10
  Architecture: x64
  Commit:       a6dbb800a4

.NET SDKs installed:
  7.0.110 [/usr/lib/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 7.0.10 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 7.0.10 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  DOTNET_ROOT       [/usr/share/dotnet]

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

となる筈が、".NET SDKs installed:"の所が"no SDKs were found."とかになってて苦労したんです。後は、環境変数も問題があり、今回やる前から既に修正してたので多分インストール作業自体では設定されないかと思うのでPATHに/usr/share/dotnetが追加されているか確認する必要があり、DOTNET_ROOTがそもそも設定されてないので/usr/share/dotnetにしておく必要があります。

0 件のコメント:

コメントを投稿