ラズパイのUbuntu Server20.04に.NET 5.0をインストールする

Icon .NET

サーバーにしているRaspberry Pi 4にUbuntu Server20.04LTSを入れているので、.NET5.0を入れて、C#のプログラムを常時実行できる環境を作ろう…と思ったのですが、パッケージのインストールだとうまくできなかったので、手動インストールをしました。

ちなみに、パッケージでインストールできない理由はMicrosoftのサイトに書いてありました。

パッケージ マネージャーによるインストールは、x64 アーキテクチャでのみサポートされています。 ARM などのその他のアーキテクチャでは、.NET Core SDK または NET Core ランタイムを手動でインストールする必要があります

APT のトラブルシューティング (Ubuntu に .NET Core SDK または .NET Core ランタイムをインストールする, Microsoft)

パッケージを検索してみると、確かにamd64って書いてありますね…(arm64が今回は対象)。

ubuntu@ubuntu:~$ apt search dotnet-sdk
Sorting... Done
Full Text Search... Done
dotnet-sdk-2.1/focal 2.1.811-1 amd64
  Microsoft .NET Core SDK 2.1.811

dotnet-sdk-3.1/focal 3.1.404-1 amd64
  Microsoft .NET Core SDK 3.1.404

dotnet-sdk-5.0/focal 5.0.100-1 amd64
  Microsoft .NET SDK 5.0.100

で、手動インストールと言っても、別に難しくはないです。ファイルをダウンロードして、配置して、パスを通すだけ…ですからね。

インストールのやり方

ダウンロード

wgetで取得するので、まずアーカイブのURLを取得します。Mirosoftの.NET 5.0のダウンロードページ(下記リンク)に、Binariesの箇所があるので、そこから該当するものを選びます。

Download .NET 5.0 (Microsoft)

.NET Installation

いったん、ファイルがローカルにダウンロードされますが、上のページのリンクだと圧縮ファイルが取れないので、次のページからURLを取得します。

.NET Installation

wgetでダウンロードします。

$ wget [先ほどのURL]

ダウンロードされますね。

.NET Installation

ハッシュ値(SHA512)からファイルの破損・改ざんをチェックする

ファイルが壊れていないかどうか(or 改ざん)、ハッシュ値からチェックしてみます。ハッシュ値は先ほどのダウンロードページの「Checksum (SHA512)」にあります。

コマンドはSHA512SUMを使用しますが、まずテキストファイルを作成します。

$ vi checksum.txt

内容は、以下のように、「ハッシュ値 + 半角スペース + ファイル名」です。

5fc ... (中略) ...04 ./dotnet-sdk-5.0.100-linux-arm64.tar.gz

保存したら、以下のコマンドを実行します。

$ sha512sum -c checksum.txt

「OK」と出たら、問題ありません。

.NET Installation

配置・パスを通す

あとは、ダウンロードページ下の「Install SDK」にあるコマンドを参考にして配置・パスを通します。

/user/dotnet というディレクトリを作り、その下に置くとしましょう。

$ mkdir -p /usr/dotnet 

展開は次のように。

$ tar zxf dotnet-sdk-5.0.100-linux-arm64.tar.gz -C /usr/dotnet

パスを通します(各ユーザーごとに実行してやる必要があります)。

$ export DOTNET_ROOT=/usr/dotnet
$ export PATH=$PATH:/usr/dotnet

動作確認

バージョンを出してやります。

$ dotnet --version

こんな風に出れば、OKです。

.NET 5.0動作確認

以上です。
終わり。