Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

任意のLinuxディストリビューションへ、.NET (.NET Core)とPowerShellをインストールする


.NET (.NET Core)*1は、Windowsをはじめ、LinuxAndroidApple端末をサポートする、クロスプラットフォーム開発フレームワークだ。特にLinux向けの配布について、主要Linuxディストリビューション向けにはパッケージを、それ以外のディストリビューション向けには、バイナリをダウンロードし、インストールするためのスクリプトを提供している。

.NETはクロスプラットフォーム対応のSDKであり、ランタイム環境でもあるため、他のパッケージとの依存関係は非常に限定的だ。つまり、インストール・スクリプトを用いることで、大抵のLinuxディストリビューションにはインストールできてしまう。

.NETをインストールすることで、NuGet Gallery*2を含む関連資産が活用できる。NuGet GalleryにはPowerShellも含まれており、必要なユーザーはコマンド"dotnet"を利用してインストールすることができる。

この投稿では、.NETとPowerShellのインストール手順を紹介する。ディストリビューションとしてClear Linuxを採用しているが、他のディストリビューションでも手順に変わりはない。

インストール・スクリプトを利用した.NET LTSのインストール

Microsoftが提供しているインストール・スクリプトには、多数のオプションが用意されており。それらを適切に設定することで、次のような要素を指定することができる。

  • バージョン
  • チャネル(最新版、あるいはLTS)
  • SDK、あるいはランタイム環境のみ
  • ドライ・ラン(インストール無しのスクリプト実行)

などなど

注ぎ込コマンドは、LTSをインストールするためのドライ・ランを実行後、実際にインストール実行している。

cd /tmp

wget https://dot.net/v1/dotnet-install.sh
chmod a+x dotnet-install.sh

./dotnet-install.sh -c LTS --dry-run
./dotnet-install.sh -c LTS

もしSDKではなく、ランタイム環境だけをインストールする場合、次のコマンドを実行することになる。念のため申し添えておくと、PowerShellをインストールするにはSDKをインストールする必要がある。

./dotnet-install.sh -c LTS --runtime dotnet --dry-run
./dotnet-install.sh -c LTS --runtime dotnet

docs.microsoft.com
docs.microsoft.com

"dotnet"コマンドを利用したPowerShellのインストール

.NETをインストールすることで、"dotnet"コマンドを利用できる。このコマンドの一機能を利用して、NuGet Garellyから.NETツールをインストールすることができる。そのようなツールの一つがPowerShell*3だ。


PowerShellのインストールに先立ち、次の環境変数を設定しておくこと。".profile"の末尾に記載しておくと良い。

export DOTNET_ROOT=~/.dotnet
export PATH=$PATH:$DOTNET_ROOT
export PATH=$PATH:$DOTNET_ROOT/tools

これらの環境変数を直ちに有効化し、PowerShellをインストールする。コマンド"pwsh"で、PowerShellが起動する。

source ~/.profile
dotnet tool install --global PowerShell

pwsh

docs.microsoft.com
docs.microsoft.com
docs.microsoft.com