ゴール
ラズパイを使ってC#の学習を行うために、ラズパイにC#の開発環境を構築する。
やってみた結果
ラズパイにC#の開発環境を構築できた!!
公式の説明にC#の開発環境である.NET SDKのインストール方法が複数紹介されており、3つの方法を試したが2つの方法で失敗、最後の方法で成功した。
開発環境
- Raspberry Pi 4 Model B
- Debian 12.9
- VScode
事前準備
- VScodeのインストール
やったこと
はじめに
C#は.NET環境で動作する言語であり、.NET Runtime または.NET SDKいずれかのコンポーネントが必要となる。.NET Runtimeは、.NETアプリケーションを実行するために必要なコンポーネント。NET SDKは、.NETアプリケーションを開発するために必要なツールやライブラリをまとめたパッケージであり、.NET Runtimeも.NET SDKパッケージに含まれている。C#の開発環境を構築することが目的なので.NET SDKをインストールする。ラズパイにインストールするので、公式の記事(https://dotnet.microsoft.com/ja-jp/learn/dotnet/hello-world-tutorial/intro)の、linuxにインストールする方法を参考に環境構築を行った。
私は.NET SDKのインストールで詰まったので、その点について説明する。
.NET SDKのインストール
C#の動作環境を作るために、まず.NET SDKのインストールを行なった。
3つの方法を試し、その方法と結果は以下のようになった。
- スクリプトでのインストール → 成功
- Snapを使用して.NET SDK をインストールする → 失敗
- Debian12にaptを使用してインストール → 失敗
この章では、成功した「スクリプトでのインストール」の説明だけ行う。失敗した2つの方法は参考として記事の最後で説明する。
とはいえ、成功した「スクリプトでのインストール」方法はリンクに書いてあるとおりに実行することでインストールに成功したので説明することは殆どない。ただし1点、インストールするバージョンは.NET 9.0 SDKではなく、長期サポートの.NET 8.0 SDKを選択した。
参考:.NET SDKのインストール失敗事例
Snapを使用したインストール
この方法では以下の環境が前提条件となる。
- snapをサポートするLinuxディストリビューション。
- snapd snapデーモン。
ラズパイのディストリビューションはDebianで、snapをサポートするLinuxディストリビューションである。しかし、snapdは最初からインストールされていない。そのため、インストールをする必要がある。snapdは動作確認まで行い、確実にインストールされていることを確認した。公式の説明に則り、terminalで
sudo snap install dotnet-sdk --classic --channel 08/stable
を実行し、.NET
version8をインストールしようとしたが、以下のようなエラーが表示された。
error: snap "dotnet-sdk" is not available on stable but is
available to install on the following channels:
error: snap "dotnet-sdk" is not available on stable but is
available to install on the following channels:
edge snap install --edge dotnet-sdk
Please be mindful pre-release channels may include features not completely
tested or implemented. Get more information with 'snap info dotnet-sdk'.
gitに同じエラーを経験した人のスレッド(dotnet-sdk is not available on channel 5.0 or latest/stable #22956)があったが、解決されていなさそうだったので中断した。
Debian12にaptを使用してインストール
debianは12であることを確認した。公式の説明にあるとおりに以下のインストール手順を実行した。
- MicrosoftのパッケージリポジトリをDebian12に追加
- aptを利用したSDK のインストール
しかし、実行結果はエラーとなり、以下のような実行結果になった。
トラブルシューティングの見出しがあったので、試したが結果は同じだった。
ヒット:1 http://deb.debian.org/debian bookworm InRelease
ヒット:2 http://deb.debian.org/debian-security bookworm-security InRelease
ヒット:3 http://deb.debian.org/debian bookworm-updates InRelease
ヒット:4 https://packages.microsoft.com/debian/12/prod bookworm InRelease
ヒット:5 http://archive.raspberrypi.com/debian bookworm InRelease
パッケージリストを読み込んでいます...
完了
パッケージリストを読み込んでいます...
完了
依存関係ツリーを作成しています...
完了
状態情報を読み取っています...
完了
E:
パッケージ
dotnet-sdk-8.0
が見つかりません
E:
'dotnet-sdk-8.0' に一致するパッケージは見つかりませんでした
E:
正規表現
'dotnet-sdk-8.0'
ではパッケージは見つかりませんでした
おわりに
初めての記事です。
温かい目で見ていただけると助かります。
どなたかの助けになれば幸いです。