.Net CoreをARM32 UbuntuのNginxで動かしてみた
Introducing .NET 5 | .NET Blog
はじめに
最近ARMアーキテクチャのCPUで動くNASを使う機会がありました。
.Net Core はARMアーキテクチャのCPUをサポートしているとの事だったので、動かすために準備した内容をまとめます。
Docker が使えたのでDockerイメージ上で.Net Coreを動かしました。
Dockerイメージ
Ubuntu 16.4 LXC
開発環境
Windows10 Pro
VisualStudio2019
.Net Core SDK 2.1.3
.Net Core サポートOS
ARM32アーキテクチャのCPUではDebianとUbuntuが使用できます。
core/2.1-supported-os.md at main · dotnet/core · GitHub
今回はイメージが見つけられた Ubuntu 16.4 LXC を使用しています。
以降の手順は Ubuntu でコマンドを実行しています。
1. パッケージの更新
以降の手順でパッケージのインストールに失敗する事を防ぎます。
apt-get update apt-get install –y wget
2. .Net Framework のインストール
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/ wget -q https://packages.microsoft.com/config/ubuntu/18.04/prod.list sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list sudo apt-get install apt-transport-https sudo apt-get update
3. .Net SDK のインストール
get https://download.microsoft.com/download/8/8/5/88544F33-836A-49A5-8B67-451C24709A8F/dotnet-sdk-2.1.300-linux-arm.tar.gz mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-2.1.300-linux-arm.tar.gz -C $HOME/dotnet export PATH=$PATH:$HOME/dotnet
6. NET アプリケーションの作成とNginxによる公開
以下の記事を参考にNginxのインストールと公開の設定を行います。
www.aruse.net
Open SSL のインストール
dotnet run 実行時に Open SSL が必要だとエラーが出た場合はインストールが必要です。今回は arm32 で使用可能な Open SSL 1.0.2 をインストールしました。
OpenSSL のインストールで使う make と gcc コマンドをインストール。
sudo apt-get install –y make sudo apt-get install –y gcc
OpenSSLに使用されているファイル圧縮・展開ライブラリをインストール。
sudo apt install zlib1g sudo apt install zliblg-dev
OpenSSLのインストール。
wget https://www.openssl.org/source/openssl-1.0.2.tar.gz tar xvf openssl-1.0.2.tar.gz cd openssl-1.0.2 ./config zlib shared no-ssl2 make && sudo make install
再度 dotnet run を実行してアプリが動くことを確認します。
参考資料
.NET Core 2.1 SDK Linux x64 No usable version of the libssl was found - Stack Overflow
ASP.NET CoreアプリをLinuxにデプロイしてNginxで公開する方法(CentOS7) - あるSEのつぶやき・改
https://qiita.com/kb10uy/items/976a52f687bcb7745fc7#openssl-102
.NET Core 2.1 SDKをRaspberry Pi 3で動かしてみた - matsujirushi’s blog
WEBサーバ (NGINX)- Raspberry Pi公式ドキュメントを日本語訳