.NET SDK を Ubuntu にインストールして Hello World する
こんにちは、@studio_meowtoon です。今回は、WSL の Ubuntu 22.04 に .NET SDK をインストールする手順と、Hello World を出力する方法を紹介します。
目的
Windows 11 の Linux でクラウド開発します。
こちらから記事の一覧がご覧いただけます。
実現すること
- Windows 11 の WSL Ubuntu 22.04 に .NET SDK をインストールして、C# プログラムをビルド、実行するシンプルな開発環境を構築します。
技術トピック
.NET とは?
こちらを展開してご覧いただけます。
Microsoft .NET
.NET は、マイクロソフトによって開発されたオープンソースのクロスプラットフォーム開発フレームワークです。
キーワード | 内容 |
---|---|
クロスプラットフォーム対応 | .NET は、Windows、macOS、Linux、Android、iOS など、複数のプラットフォームで実行されるように設計されています。これにより、同じコードを複数のプラットフォームで共有できます。 |
豊富なライブラリ | .NET には、豊富なライブラリが含まれています。これにより、開発者は、簡単にデータベースやネットワーク、GUIなどの機能を組み込むことができます。 |
マルチ言語サポート | .NET は、複数のプログラミング言語 (C#、F#、Visual Basic など) をサポートしています。開発者は、自分の好きな言語でアプリケーションを開発できます。 |
高速性 | .NET は、JIT コンパイラによって実行されるため、高速に動作します。また、メモリ管理が自動的に行われるため、開発者はメモリ管理に関する問題を心配する必要がありません。 |
セキュリティ | .NET には、セキュリティに関する多数の機能が含まれています。たとえば、コードアクセスセキュリティ (CAS) があり、アプリケーションに対する不正なアクセスを防止することができます。 |
これらの特徴とメリットにより、.NET は、クロスプラットフォーム開発において人気のあるフレームワークの一つとなっています。
開発環境
- Windows 11 Home 22H2 を使用しています。
WSL の Ubuntu を操作していきますので macOS の方も参考にして頂けます。
WSL (Microsoft Store アプリ版) ※ こちらの関連記事からインストール方法をご確認いただけます
> wsl --version
WSL バージョン: 1.0.3.0
カーネル バージョン: 5.15.79.1
WSLg バージョン: 1.0.47
Ubuntu ※ こちらの関連記事からインストール方法をご確認いただけます
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
この記事では基本的に Ubuntu のターミナルで操作を行います。Vim を使用してコピペする方法を初めて学ぶ人のために、以下の記事で手順を紹介しています。ぜひ挑戦してみてください。
.NET SDK をインストール
Ubuntu 22.04 に .NET をインストールする場合、パッケージリポジトリの追加は必要ありません。しかし、Microsoft から提供される最新のパッケージが必要になるケースがあります。この記事では Ubuntu リポジトリの .NET パッケージを無視するようにパッケージマネージャーを構成します。ご注意ください!
既存の .NET パッケージを完全に削除します。
$ sudo apt remove 'dotnet*' 'aspnet*' 'netstandard*'
$ sudo apt purge 'dotnet*' 'aspnet*' 'netstandard*'
$ sudo rm -fr /usr/share/dotnet
/etc/apt/preferences ファイルを作成します。
$ sudo vim /etc/apt/preferences
ファイルの内容
Package: dotnet* aspnet* netstandard*
Pin: origin "archive.ubuntu.com"
Pin-Priority: -10
spnetcore、または netstandard や dotnet で始まるパッケージが Ubuntu リポジトリからソース化されなくなります。
Microsoft のパッケージリポジトリを追加します。
$ repo_version=$(if command -v lsb_release &> /dev/null; then lsb_release -r -s; \
else grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"'; fi)
$ wget https://packages.microsoft.com/config/ubuntu/$repo_version/packages-microsoft-prod.deb \
-O packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
$ rm packages-microsoft-prod.deb
インストールします。
$ sudo apt update
$ sudo apt install dotnet-sdk-7.0
次のパッケージが新たにインストールされます。
aspnetcore-runtime-7.0 dotnet-runtime-7.0 dotnet-sdk-7.0
バージョンを確認します。
$ dotnet --list-sdks
7.0.202 [/usr/share/dotnet/sdk]
$ dotnet --version
7.0.202
情報を表示します。
$ dotnet --info
.NET SDK:
Version: 7.0.202
Commit: 6c74320bc3
ランタイム環境:
OS Name: ubuntu
OS Version: 22.04
OS Platform: Linux
RID: ubuntu.22.04-x64
Base Path: /usr/share/dotnet/sdk/7.0.202/
Host:
Version: 7.0.4
Architecture: x64
Commit: 0a396acafe
.NET SDKs installed:
7.0.202 [/usr/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 7.0.4 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.4 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
Not set
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
Hello World を表示する手順
プロジェクトルートフォルダに移動します。
※ ~/tmp をプロジェクトルートフォルダとします。
$ cd ~/tmp
コンソールアプリを作成します。
※ HelloApp がアプリ名です。
$ dotnet new console -o HelloApp -f net7.0
コンソールアプリをビルド・実行します。
$ cd ~/tmp/HelloApp
$ dotnet run
Hello, World!
ターミナルに "Hello, World!" が表示されました。
コンソールアプリの内容確認
プロジェクト構成を確認します。
$ tree -I 'bin|obj'
.
├── HelloApp.csproj
└── Program.cs
プロジェクトファイルを確認します。
$ cat HelloApp.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
プログラムを確認します。
$ cat Program.cs
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
.NET 5.0 まではこうでした。
using System;
namespace MyApp {
class Program {
static void Main(string[] args) {
Console.WriteLine("Hello, World!");
}
}
}
まとめ
- Ubuntu に .NET SDK をインストールして、シンプルな開発環境を構築することが出来ました。
実際の開発では、軽量なテキストエディタである VS Code や、IDE (統合開発環境) を使用して、.NET プログラムを開発することが一般的です。しかし、dotnet コマンドでビルドしたり、実行したりすることも、.NET 開発環境を理解する上で役立ちます。
どうでしたか? Window 11 の WSL Ubuntu に、.NET の開発環境を手軽に構築することができます。ぜひお試しください。今後も .NET の開発環境などを紹介していきますので、お楽しみに。それでは失礼します。
推奨コンテンツ
参考資料