サーバーにしている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の箇所があるので、そこから該当するものを選びます。
いったん、ファイルがローカルにダウンロードされますが、上のページのリンクだと圧縮ファイルが取れないので、次のページからURLを取得します。
wgetでダウンロードします。
$ wget [先ほどのURL]
ダウンロードされますね。
ハッシュ値(SHA512)からファイルの破損・改ざんをチェックする
ファイルが壊れていないかどうか(or 改ざん)、ハッシュ値からチェックしてみます。ハッシュ値は先ほどのダウンロードページの「Checksum (SHA512)」にあります。
コマンドはSHA512SUMを使用しますが、まずテキストファイルを作成します。
$ vi checksum.txt
内容は、以下のように、「ハッシュ値 + 半角スペース + ファイル名」です。
5fc ... (中略) ...04 ./dotnet-sdk-5.0.100-linux-arm64.tar.gz
保存したら、以下のコマンドを実行します。
$ sha512sum -c checksum.txt
「OK」と出たら、問題ありません。
配置・パスを通す
あとは、ダウンロードページ下の「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です。
以上です。
終わり。