組込みエンジニアがWEBアプリ開発に挑戦してみた(5)
Linuxに開発環境をインストールする

どもです。

今回は、以下の内容の続きです。

今回は、固定IPアドレスの設定の次のステップとして、VirtualBox上のLinuxに開発環境およびWEBアプリを実行するために必要なツールをインストールしてみます。

0. 作業環境

今回のエントリは、以下の環境で作業を行います。

CPU Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz 3.20 GHz
RAM 16.0 GB (15.9 GB 使用可能)
OS Windows10 Professional
22H2(19045.5487)
Virtual Box バージョン 7.0.22 r165 102
ゲストOS Ubuntu 24.04.2 LTS

1. .NET SDKのインストール

まず最初に、Lixnu/Ubuntuに.NET SDKをインストールします。

そういえば、ここまで一度も書いていませんでしたが、今回はLinux上で動作する.NETのWEBアプリを開発してみます。なのでまず、Linuxに対して.NET SDKをインストールします。

Linuxへの.NET SDKのインストールは、Microsoftのサイトで公開されている手順を参考にしながら進めていきます。

1.1. SDKのインストール

まず、.NET SDKをインストールします。.NET SDKをインストールするためには、Ubuntuの端末(ターミナル)上で、以下のコマンドを実行します。

sudo apt-get update
sudo apt-get install -y dotnet-sdk-8.0

この2行のコマンドは、「&」でつないで複数行に分けて実施することもできます。しかし、慣れていない環境でいきなりトリッキーなことをする勇気な無いので、1つずつ分けて、順番にコマンドを実行しています。

このコマンドを実行することで、.NET SDKがインストールされます。

1.2. ランタイムのインストール

次に、.NETランタイム(ASP.NET Core ランタイム)のインストールです。.NETランタイムのインストールは、以下のコマンドを実行します。

sudo apt-get update
sudo apt-get install -y aspnetcore-runtime-8.0

なお、.NETランタイムは、.NET SDKにも含まれています。そのため、.NET SDKをインストールした場合には、.NETランタイムのインストールは実行不要です。

.NETランタイムのインストールは、.NETを使用したアプリを実行だけする環境で、実行する必要があります。

1.3. インストール確認

.NET SDKがインストールされたことを確認するために、以下のコマンドを実行します。

dotnet new

このコマンドを実行することで、dotnetコマンドで開発可能なプロジェクト(のためのテンプレートの)種類が端末上に表示されます。使用可能なテンプレートは、以下のコマンドで確認できます。

dotnet new list
			

なお私の環境では、以下のように表示されました。

テンプレート名                                   短い名前                    言語        タグ
-----------------------------------------------  --------------------------  ----------  --------------------------
API コントローラー                               apicontroller               [C#]        Web/ASP.NET
ASP.NET Core (空)                                web                         [C#],F#     Web/Empty
ASP.NET Core gRPC サービス                       grpc                        [C#]        Web/gRPC/API/Service
ASP.NET Core Web API                             webapi                      [C#],F#     Web/Web API/API/Service
ASP.NET Core Web API (native AOT)                webapiaot                   [C#]        Web/Web API/API/Service
ASP.NET Core Web アプリ                          webapp,razor                [C#]        Web/MVC/Razor Pages
ASP.NET Core Web アプリ (Model-View-Controller)  mvc                         [C#],F#     Web/MVC
Blazor Web アプリ                                blazor                      [C#]        Web/Blazor/WebAssembly
Blazor WebAssembly アプリ                        blazorwasm                  [C#]        Web/Blazor/WebAssembly/PWA
dotnet gitignore ファイル                        gitignore,.gitignore                    Config
dotnet ローカル ツール マニフェスト ファイル     tool-manifest                           Config
EditorConfig ファイル                            editorconfig,.editorconfig              Config
global.json ファイル                             globaljson,global.json                  Config
MSBuild Directory.Build.props ファイル           buildprops                              MSBuild/props
MSBuild Directory.Build.targets ファイル         buildtargets                            MSBuild/props
MSTest Playwright Test Project                   mstest-playwright           [C#]        Test/MSTest/Playwright
MSTest Test Project                              mstest                      [C#],F#,VB  Test/MSTest
MVC ViewImports                                  viewimports                 [C#]        Web/ASP.NET
MVC ViewStart                                    viewstart                   [C#]        Web/ASP.NET
MVC コントローラー                               mvccontroller               [C#]        Web/ASP.NET
NuGet Config                                     nugetconfig,nuget.config                Config
NUnit 3 Test Item                                nunit-test                  [C#],F#,VB  Test/NUnit
NUnit 3 Test Project                             nunit                       [C#],F#,VB  Test/NUnit
NUnit Playwright Test Project                    nunit-playwright            [C#]        Test/NUnit/Playwright
Razor クラス ライブラリ                          razorclasslib               [C#]        Web/Razor/Library
Razor コンポーネント                             razorcomponent              [C#]        Web/ASP.NET
Razor ビュー                                     view                        [C#]        Web/ASP.NET
Razor ページ                                     page                        [C#]        Web/ASP.NET
Web 構成                                         webconfig                               Config
xUnit Test Project                               xunit                       [C#],F#,VB  Test/xUnit
クラス ライブラリ                                classlib                    [C#],F#,VB  Common/Library
コンソール アプリ                                console                     [C#],F#,VB  Common/Console
ソリューション ファイル                          sln,solution                            Solution
プロトコル バッファー ファイル                   proto                                   Web/gRPC
ワーカー サービス                                worker                      [C#],F#     Common/Worker/Web			

今回は、Linux上で動作するWEBアプリを開発したいので、テンプレートには「webapp」を指定します。

dotnetコマンドによるテンプレートを使用した開発用プロジェクトの作成は、以下のコマンドで実行します。

dotnet new <template_type> -n <project_name> -o <output_directory>

ここで、template_typeには、先ほど指定したテンプレートのいずれかを指定します。project_nameは(そのままですが)、開発するプロジェクト名を指定します。最後のoutput_directoryは、プロジェクトの出力先を指定します。

今回は、project_nameにはAspNetCoreSampleを、output_directoryには、sampleWebAppを指定してみます。

実際のコマンドは、以下の通りです。

dotnet new webapp -n AspNetCoreSample -o sampleWebApp

このコマンドを実行し、「正常に復元されました」とメッセージが表示されれば、コマンドの実行完了です。

指定したプロジェクトは、コマンドを実行したディレクトリの「sampleWebApp」ディレクトリ内に出力されています。

2. NGINX(エンジンエックス)のインストール

次に、NGINXをインストールします。

.NETのWEBアプリは、NGINXをリバースプロキシとして使用します。NGINXは、(ポート番号80に対して発行された)HTTP要求を、開発する.NETアプリケーションにルーティングします。

Lixnu/UbuntuにNGINXをインストールするためには、以下のコマンドを実行します。

sudo apt install nginx

はい。コレだけです。

インストールの確認は、以下のコマンドで行います。

whereis nginx

このコマンドを実行してusrディレクトリやetcディレクトリのサブディレクトリのパスが表示されればOKです。

NGINXのインストールは、これで完了です。

3. まとめ

今回は、Linux/Ubuntuに開発環境をインストールしてみました。インストールしたのは、.NET SDKとNGINXのみです。この2つがあれば、基本的にはWEBアプリケーションの開発が可能となります。

ツールの設定や動作確認は、次回以降書いていく予定です。

ではっ!