やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

C# DotNet v3.0.100 インストール

 preview版でなく正式版っぽい。

手順

  1. ダウンロードする
  2. 保存先ディレクトリを作る(mkdir -p ...
  3. 展開する(tar zxf dotnet-sdk-3.0.100-linux-arm.tar.gz
  4. 環境変数PATHに追記する(export ...

 シェルスクリプトにすると以下。

DOTNET_CLI_TELEMETRY_OPTOUT=1
ARCHIVE_FILE=dotnet-sdk-3.0.100-linux-arm.tar.gz
wget https://download.visualstudio.microsoft.com/download/pr/8ddb8193-f88c-4c4b-82a3-39fcced27e91/b8e0b9bf4cf77dff09ff86cc1a73960b/$ARCHIVE_FILE

DIR_DOTNET=/home/pi/root/sys/env/sdk/.NETCore/3.0.100
mkdir -p "$DIR_DOTNET"
cd "$DIR_DOTNET"
tar zxf ARCHIVE_FILE

export DOTNET_ROOT=$DIR_DOTNET
export PATH=$PATH:$DIR_DOTNET

環境変数の常時登録

~/.bashrc

DOTNET_CLI_TELEMETRY_OPTOUT=1
export DOTNET_ROOT=$HOME/root/sys/env/sdk/.NETCore/3.0.100
export PATH=$PATH:$DIR_DOTNET

 ~/.bashrcに追記する。これでターミナルが起動するたびに環境変数が設定される。さもなくば毎回export ...を要する。

確認

バージョン

dotnet --version
3.0.100

 成功!

ヘルプ

$ dotnet --help
.NET Core SDK (3.0.100)
使用法: dotnet [runtime-options] [path-to-application] [arguments]

.NET Core アプリケーションを実行します。

runtime-options:
  --additionalprobingpath <path>   調査ポリシーと調査対象アセンブリを含むパス。
  --additional-deps <path>         追加の deps.json ファイルへのパス。
  --fx-version <version>           アプリケーションを実行するために使用するインストール済み Shared Framework のバージョン。
  --roll-forward <setting>         フレームワーク バージョン (LatestPatch、Minor、LatestMinor、Major、LatestMajor、Disable) にロールフォワードします。

path-to-application:
  実行するアプリケーション .dll ファイルへのパス。

使用法: dotnet [sdk-options] [command] [command-options] [arguments]

.NET Core SDK コマンドを実行します。

sdk-options:
  -d|--diagnostics  診断出力を有効にします。
  -h|--help         コマンド ラインのヘルプを表示します。
  --info            .NET Core 情報を表示します。
  --list-runtimes   インストール済みランタイムを表示します。
  --list-sdks       インストール済み SDK を表示します。
  --version         使用中の .NET Core SDK バージョンを表示します。

SDK コマンド:
  add               .NET プロジェクトにパッケージまたは参照を追加します。
  build             .NET プロジェクトをビルドします。
  build-server      ビルドによって開始されたサーバーとやり取りします。
  clean             .NET プロジェクトのビルド出力をクリーンします。
  help              コマンド ラインのヘルプを表示します。
  list              .NET プロジェクトのプロジェクト参照を一覧表示します。
  msbuild           Microsoft Build Engine (MSBuild) コマンドを実行します。
  new               新しい .NET プロジェクトまたはファイルを作成します。
  nuget             追加の NuGet コマンドを提供します。
  pack              NuGet パッケージを作成します。
  publish           .NET プロジェクトを配置のために発行します。
  remove            .NET プロジェクトからパッケージまたは参照を削除します。
  restore           .NET プロジェクトに指定されている依存関係を復元します。
  run               .NET プロジェクトの出力をビルドして実行します。
  sln               Visual Studio ソリューション ファイルを変更します。
  store             指定されたアセンブリをランタイム パッケージ ストアに格納します。
  test              .NET プロジェクトに指定されているテスト ランナーを使用して、単体テストを実行します。
  tool              .NET のエクスペリエンスを向上するツールをインストールまたは管理します。
  vstest            Microsoft Test Engine (VSTest) コマンドを実行します。

バンドルされたツールからの追加コマンド:
  dev-certs         開発証明書を作成し、管理します。
  fsi               F# Interactive を開始するか、F# スクリプトを実行します。
  sql-cache         SQL Server キャッシュ コマンドライン ツール。
  user-secrets      開発ユーザーのシークレットを管理します。
  watch             ファイルが変更されたときにコマンドを実行するファイル ウォッチャーを起動します。

コマンドに関する詳細情報については、'dotnet [command] --help' を実行します。

 日本語化されている。

失敗ログ

失敗ログ

情報源

手順(失敗)

  • C# DotNet downloadググる
  • ダウンロードサイトにアクセスする
  • LinuxディストリビューションコンボボックスからDebian 10-x64を選択する
  • 手順に従う

Microsoftキーとフィードを登録する

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/debian/10/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list

.NET SDKをインストールする

sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-3.0

 dotnet-sdk-3.0が存在しない……。

$ sudo apt install dotnet-sdk-3.0
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
E: パッケージ dotnet-sdk-3.0 が見つかりません
E: 'dotnet-sdk-3.0' に一致するパッケージは見つかりませんでした
E: 正規表現 'dotnet-sdk-3.0' ではパッケージは見つかりませんでした

 x64以外はここでダウンロードするらしい。RPI3B+はARM32に相当する。

 環境による差をユーザが解読せねばならない苦痛よ。ソースからビルドできるようにしてくれ。オープンソース詐欺か。

前回まで

 まだバージョンがpreviewだった頃。v3になってもpreview 7とかだったはず。しばらく放置していたが、いつの間にやら正式版になったっぽい。たしかこれからはMONO, .NET Framework, DotNetが統合されてDotNet 5になるんだっけ? この記事が公開されている頃にはさらに先へ進んでいるのだろう。

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux