mfsr-mfprobe の winget と nuget.org でのリリース開始のお知らせ
これまで、mfsr と mfprobe は、実行ファイルを .zip で配布して、ユーザーさんに自分でPathの通ったフォルダーに配置してもらっていました。
winget でのインストールが可能になりました
先日、Windows 版は winget によるリリースを開始し、Windows標準の winget install コマンドで、簡単に mfsr と mfprobe をインストールできるようになりました。
rmsmf と txprobe は、これまでと同じで .zip ファイルでのインストールする方式のままです。
私としては、.NET Framework 4.8 でビルドしている rmsmf と txprobe よりも、.NET10 でビルドしている mfsr と mfprobe を極力使用して頂きたいので、このようにしました。
macOS と Linux OS へ対応しました
元々、.NET10 で開発していますから、macOS と Linux OS でもリリースすれば動作するように開発しています。
しかし、これまでは Mac と Linux へのリリース手段を提供していませんでした。
リリースに時間がかかった理由として、macOS と Linux OS はCPUの種類やカーネルのバージョンなどの種類が多く、各種の環境に合わせたネイティブコードでのリリースが困難になるため、どのようなリリース方法が良いか判断に迷ったからです。
Windows版は、Native AOT によりネイティブコードでリリースしています。 winget でインストールする mfsr と mfprobe はネイティブコード版です。
今回、macOS と Linux OS に対しては、.NET10 のマネージドコードのアセンブリで提供することにしました。
マネージドコードの実行には .NET10 の Runtime(ランタイム) が必要になります。
しかし、.NET10 Runtime が、CPUの違いやカーネル・glibc などの違いを吸収してくれるので、OS に .NET10 Runtime さえインストールされていれば、どこの環境でも稼働するメリットがあります。
Mac には、インテルCPU版・Apple Silicon版・A18 Pro版と三種類のCPUがあり、macOSのバージョンも新旧でいくつか並行して提供されています。
Linuxはディストリビューションが多数ありカーネルやglibcのバージョンも多数並行して提供されています。
これら全てにネイティブコードを提供することは、難しいと思います。
これらの違いは、 .NET10 Runtime に吸収してもらい、mfsr と mfprobe は Runtime だけに合わせる形式での提供が、一番効率が良く信頼性も高いと考えました。
アセンブリは nuget.org で提供しています
Windows版のネイティブコードは、winget で提供していますが、macOS と Linux OS へのマネージドコードでの提供は、nuget.org で提供しています。
インストールには dotnet コマンドで dotnet tool install によってインストールします。
Windowsでは二つの提供がある
マネージドコードでの提供でお気づきの方もいると思いますが、nuget.org でのマネージドコードでの提供は、Windowsでもインストールすることが可能です。 つまり、Windowsでは winget 提供のネイティブコード版と、nuget.org 提供のマネージドコード版の二種類を提供していることになります。
私としては、Windows ではネイティブコード版を利用して欲しいと考えいますが、マネージドコード版もWindowsで同様に動作します。
正直なところ、どちらを使っても違いはほとんど無いです。
違いはマネージドコード版には .NET Runtime が必要なことぐらいです。 好きな方を利用してください。
なお、環境変数 Path の関係で両方使用することはできないと思います。
.zip のダウンロードは必要無い
winget install でも dotnet tool install でも、事前に mfsr と mfprobe の .zip ファイルのダウンロードは必要無いです。
それぞれのコマンドを実行すればインストールできます。
具体的なインストール方法については、以下のページで解説しています。
使い方の解説は、以前から紹介していますように、以下の二つのページで解説しています。
rmsmf-txprobe & mfsr-mfprobe 使い方の分かりやすい解説
PowerShellの文字エンコーディング問題に終止符を打つ:BOM・改行コードを自在に扱う方法
以上、「お知らせ」でした。