OSインストール
最新のRaspbianをダウンロードしてmicroSD焼きます。
現時点の最新、2019-07-10-raspbian-buster-lite.imgを使いました。
あと、sudo apt update
とsudo apt upgrade
も忘れずに実行。
NETCore 3.0インストール
最新のNET Core 3.0をダウンロード、インストールします。
現時点の最新はv3.0.100-preview9。
まずはダウンロード。
wget https://download.visualstudio.microsoft.com/download/pr/33387ff2-7687-4564-a90d-28b9539e0d3b/f75a063b80fc5a94a4d35689aee8b108/dotnet-sdk-3.0.100-preview9-014004-linux-arm.tar.gz
RaspbianはARM32なので、Linuxの.NETCore BinariesにあるARM32をクリックすると、ダウンロードURLを得ることができます。
約113Mbytesのファイルでした。
次に、ダウンロードしたファイルを解凍します。
mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-3.0.100-preview9-014004-linux-arm.tar.gz -C $HOME/dotnet
最後に、環境変数DOTNET_ROOTとPATHに、解凍したディレクトリを設定します。
これは.bashrcの最後に以下を追加してログインし直し。
export DOTNET_ROOT=$HOME/dotnet export PATH=$PATH:$HOME/dotnet
Hello World!
.NETCoreでコンパイル、実行できるか確認します。
dotnet new console -o myApp cd myApp dotnet run
Hello World!と表示されれば正常です。
Single-file executables
2回目以降でも、相変わらず起動に時間がかかるのですが、
.NETCore3から使えるようになった(?)、Single-file executablesで、どれくらい起動時間が短縮されるか見てみましょう。
dotnet publish /p:PublishSingleFile=true
で実行ファイルを生成すると、
エラーorz
あ、-r
オプションでRuntime Identifierというのを指定する必要があるみたい。
気を取り直して、リトライ。
dotnet publish -r linux-arm /p:PublishSingleFile=true
できたっぽい。
起動がクッソ速くなった。
仕組みについては、ここに書いてあるようです。