.NET 6.0 RPM パッケージのリリースノート
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ を参照してください。
Red Hat ドキュメントへのフィードバック (英語のみ)
弊社ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があればお知らせください。改善点を報告する場合は、以下のように行います。
特定の文章に簡単なコメントを記入する場合は、以下の手順を行います。
- ドキュメントの表示が Multi-page HTML 形式になっていていることを確認してください。ドキュメントの右上隅に Feedback ボタンがあることを確認してください。
- マウスカーソルを使用して、コメントを追加するテキストの部分を強調表示します。
- 強調表示されたテキストの下に表示される Add Feedback ポップアップをクリックします。
- 表示される指示に従ってください。
より詳細なフィードバックをお寄せいただく場合は、Bugzilla のチケットを作成してください。
- Bugzilla の Web サイトにアクセスします。
- Component として Documentation を使用します。
- Description フィールドに、ドキュメントの改善に向けたご提案を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- Submit Bug をクリックします。
第1章 可用性
Red Hat は、.NET を配布しています。このディストリビューションを使用すると、開発者は C#、Visual Basic、および F# 言語でアプリケーションを作成し、それを Red Hat Enterprise Linux (RHEL)、Red Hat OpenShift Container Platform などのプラットフォームにデプロイできます。コンテナー開発用のツールスイートを含む、無料の Red Hat Enterprise Linux Developer サブスクリプション をご利用いただけます。
Red Hat Enterprise Linux 7 では、.NET 6.0 は以下のレポジトリーの RPM
rh-dotnet60
として利用できます。-
RHEL 7 Server:
rhel-7-server-dotnet-rpms
-
RHEL 7 Workstation:
rhel-7-workstation-dotnet-rpms
-
RHEL 7 HPC:
rhel-7-hpc-node-dotnet-rpms
Red Hat Enterprise Linux 7 に .NET 6.0 をインストールする方法は RHEL 7 で .NET を使い始める を参照してください。
-
RHEL 7 Server:
-
Red Hat Enterprise Linux 8 では、.NET 6.0 は AppStream リポジトリーの RPM
dotnet-sdk-6.0
として利用できます。AppStream リポジトリーは、RHEL 8 でデフォルトで有効になっています。 .NET 6.0 は、Red Hat Enterprise Linux 8 および OpenShift Container Platform の
aarch64
、s390x
、およびx86_64
アーキテクチャーで利用できます。RHEL 8 に .NET 6.0 をインストールする方法は、Getting started with .NET on RHEL 8 を参照してください。
第2章 概要
.NET は、自動メモリー管理と最新のプログラミング言語を備えた .NET の汎用、モジュラー、クロスプラットフォーム、およびオープンソース実装です。これにより、ユーザーは高品質のアプリケーションを効率的に構築できます。.NET は、RHEL 7、RHEL 8、RHEL 9 で利用できます。
.NET 6.0 は長期サポート (LTS) リリースです。LTS リリースは通常、約 3 年間サポートされます。詳細は、Life Cycle and Support Policies for the .NET Program を参照してください。
.NET は以下を提供します。
- マイクロサービスベースのアプローチに従う機能。一部のコンポーネントは .NET で構築され、他のコンポーネントは Java で構築されますが、すべては RHEL でサポートされている共通のプラットフォームで実行できます。
- Microsoft Windows で新しい .NET ワークロードをより簡単に開発する機能。RHEL または Windows Server のいずれかにデプロイして実行できます。
- 異機種環境のデータセンター。基盤となるインフラストラクチャーが Windows Server にのみ依存することなく .NET アプリケーションを実行できます。
第3章 機能および利点
3.1. 現在の機能および利点
.NET 6.0 には、以下の機能と利点があります。
ランタイムライブラリーおよびフレームワークライブラリー
.NET は、ランタイムとフレームワークライブラリー、コンパイラー、ビルドツール、NuGet パッケージを取得するツール、すべてを連携させるコマンドラインインターフェイスで設定されます。次の利点があります。
- 自動メモリー管理
- タイプの安全性
- 委譲と lambda
- 汎用型
- 言語統合クエリー (LINQ)
- 非同期プログラミング
- ネイティブの相互運用性
- ソースジェネレーター
.NET 6.0 では、ASP.NET Core 6.0 と EF Core 6.0 を使用したアプリケーションの開発がサポートされており、以下のようなメリットがあります。
- 軽量およびモジュール式 HTTP 要求パイプライン
- Web サーバーでホストするか、独自のプロセスでセルフホストする機能
- .NET 上に構築 (実際のサイドバイサイドのアプリケーションのバージョン管理をサポート)
- NuGet パッケージの作成および使用の統合サポート
- Web UI および Web API の単一調整 Web スタック
- クラウド対応の環境ベースの設定
- 依存関係インジェクションの組み込みサポート
- 最新の Web 開発を簡素化するツール
3.2. 新機能および利点
64 ビット Arm (aarch 64)、IBM Z、および LinuxONE (s390x) のサポート
- .NET 6.0 では、Red Hat Enterprise Linux 8 で実行されている 64 ビット Arm のサポートが導入されました。
- .NET 6.0 では、Red Hat Enterprise Linux 8 および OpenShift Container Platform 4.2 以降で実行されている IBM Z および LinuxONE のサポートが導入されました。
.NET 6.0 では、オープンソース環境のアプリケーション開発のサポートおよびツールを引き続き拡張されます。.NET の最新バージョンには、以下の改善点が含まれています。
- C# 10 のサポート
- F# 6 のサポート
- 単一ファイルソースプログラム
- ベースライブラリー、GC、および JIT におけるパフォーマンスの向上
- ロギングおよび JSON のソースジェネレーター
- dotnet-monitor を使用した診断の改善
第4章 サポート対象のオペレーティングシステムおよびアーキテクチャー
.NET 6.0 は、Red Hat Enterprise Linux 8 以降の x86_64
、aarch64
、および s390x
で利用できます。
表4.1 .NET 6.0 のサポートされるデプロイメント環境
プラットフォーム | アーキテクチャー | RPM | リポジトリー |
---|---|---|---|
Red Hat Enterprise Linux 7 |
AMD64 および Intel 64 ( | rh-dotnet60 | Red Hat Enterprise Linux 7 Server: rhel-7-server-dotnet-rpms Red Hat Enterprise Linux 7 Workstation: rhel-7-workstation-dotnet-rpm Red Hat Enterprise Linux 7 HPC: rhel-7-hpc-node-dotnet-rpms |
Red Hat Enterprise Linux 8 |
AMD64 および Intel 64 (
IBM Z および LinuxONE (
64 ビット Arm ( | dotnet-sdk-6.0 | Appstream 注記: AppStream リポジトリーは、Red Hat Enterprise Linux 8 ではデフォルトで有効になっています。 |
Red Hat Enterprise Atomic Host |
AMD64 および Intel 64 ( | ||
OpenShift Container Platform 3.11 以降 |
AMD64 および Intel 64 ( | ||
OpenShift Container Platform 4.2 以降 |
IBM Z および LinuxONE ( |
第5章 カスタマープライバシー
さまざまな Microsoft 製品には、ネットワーク上の使用状況の統計、解析、およびその他のメトリックを Microsoft に報告する機能があります。Microsoft では、これをテレメトリーと呼びます。Red Hat は、明示的な許可なしに顧客データを他者に送信することを推奨しないため、テレメトリーを無効にしています。
第6章 サポート
Red Hat と Microsoft は、.NET に対して優れたサポートを提供し、Red Hat がサポートするプラットフォームで発生する問題を解決できるように取り組んでいます。Red Hat は、Red Hat Enterprise Linux (RHEL) における .NET コンポーネントのインストール、設定、実行をサポートします。また、Red Hat は、NuGet アクセスの問題、パーミッションの問題、ファイアウォール、およびアプリケーションの質問で対応できる問題に対して商業的に妥当なサポートを提供することもできます。問題が .NET の不具合または脆弱性である場合は、Microsoft と協力して解決します。
.NET 6.0 は、RHEL 7、RHEL 8、RHEL 9、および Red Hat OpenShift Container Platform バージョン 3.3 以降でサポートされます。
.NET サポートポリシーの詳細は、.NET Core Life Cycle を参照してください。
6.1. 連絡先オプション
.NET の使用方法に応じて、サポートを受ける方法は複数あります。
- .NET を使用している場合は、Red Hat サポート または Microsoft に直接問い合わせることができます。
- Microsoft Azure で .NET を使用している場合は、Red Hat サポート または Azure サポート のいずれかに連絡して統合サポート を受けることができます。
統合サポートは、Red Hat と Microsoft 間のサポート契約です。Microsoft Azure で Red Hat 製品をお使いのお客様は相互のお客様であるため、Microsoft と Red Hat の両方で最適なトラブルシューティングとサポートエクスペリエンスを提供することができます。
- IBM Z および LinuxONE で .NET を使用している場合は、Red Hat サポート にお問い合わせください。お客様のケースに割り当てられている Red Hat サポートエンジニアが IBM からの支援を必要としている場合は、Red Hat サポートエンジニアは、IBM と直接連携します。お客様側では、なにもしていただく必要はありません。
6.2. よくある質問
ここでは、統合サポートに関する最も一般的な質問を 4 つ紹介します。
統合サポートはいつ利用するのですか?
Red Hat サポート に直接問い合わせることができます。お客様のケースに割り当てられている Red Hat サポートエンジニアが Microsoft からの支援を必要としている場合は、Red Hat サポートエンジニアは、Microsoft と直接連携します。お客様側では、なにもしていただく必要はありません。同様に、Microsoft 側では Red Hat サポートエンジニアと直接連携するプロセスがあります。
サポートケースを作成した後はどうなりますか?
Red Hat サポートケースが作成されると、Red Hat サポートエンジニアがケースに割り当てられ、Microsoft サポートエンジニアとお客様に対応させていただき、問題に対処します。問題への対応は、Red Hat の製品サポートサービスレベルアグリーメント に基づいて行われることをご了承ください。
さらなるサポートが必要な場合は ?
ケースの作成またはこのプロセスに関する質問については、Red Hat サポート にお問い合わせください。こちらのページから、対応中のケースを表示できます。
Azure プラットフォームの問題について Microsoft にサポートを依頼するにはどうすればよいですか?
Microsoft からのサポートをお持ちの場合は、通常のプロセスを使用してケースを作成できます。Microsoft のサポートをお持ちでない場合は、常に Microsoft サポート からサポートを受けることができます。
6.3. その他のサポートリソース
Red Hat Developers の Resources ページには、以下を含むさまざまな情報が提供されています。
- ドキュメントの使用
- ナレッジベースのアーティクルおよびソリューション
- ブログ投稿
.NET ドキュメントは、Microsoft の Web サイトでホストされています。以下に追加でトピックを紹介していますので、確認してください。
Red Hat および Microsoft Azure Certified Cloud & Service Provider Support Policies で、サポートポリシーの情報を確認することもできます。
第7章 既知の問題
Red Hat Enterprise Linux (RHEL) で .NET を実行するための既知の問題は次のとおりです。
以前のバージョンの RHEL では動作しません。
dotnet dev-certs https --trust
は RHEL では機能しません。.NET は、
dotnet dev-certs https
による HTTPS 証明書の作成をサポートしますが、dotnet dev-certs https --trust
による信頼はサポートしていません。curl
や Firefox などの ASP.NET Core アプリケーションに接続するクライアントは、信頼できない自己署名証明書について警告します。Firefox などのブラウザーでこれを回避するには、警告を無視し、信頼できない証明書に関する警告が表示されたときに証明書を明示的に信頼します。コマンドラインツールは、信頼できない証明書を無視するフラグをサポートします。curl
には、--insecure
フラグを使用します。wget
には、--no-check-certificate
フラグを使用します。nuget.org には
s390x
の NuGet パッケージはありません。rhel.8-s390x
またはlinux-s390x
ランタイム識別子を使用すると、これらのパッケージを取得しようとする一部のdotnet
コマンドが失敗することがあります。これらのコマンドは、他の既知の問題で説明されているようにs390x
で完全にサポートされていないか、ランタイム識別子を指定しないことで問題を修正できます。-
s390x
では、単一ファイルのアプリケーションはサポートされていません。 -
PublishReadyToRun/crossgen は
s390x
ではサポートされていません。 s390x
の .NET 6.0 は、コンテナーのメモリーおよび CPU 制限を認識しません。このような環境では、.NET 6.0 がコンテナーに割り当てられた以上のメモリーを使用しようとする可能性があり、OpenShift Container Platform でコンテナーが強制終了または再起動される原因となります。回避策として、環境変数
MONO_GC_PARAMS=max-heap-size=<limit>
を使用してヒープ制限を手動で指定することができます。コンテナーに割り当てられたメモリーの 75% に上限を設定する必要があります。たとえば、コンテナーのメモリー制限が 300MB の場合には、MONO_GC_PARAMS=max-heap-size=225M
を設定します。テストプロジェクトテンプレート (
xunit
、nunit
、mstest
) のMicrosoft.NET.Test.Sdk
パッケージのデフォルトバージョンはs390x
では使用できません。テストをビルドまたは実行しようとすると System.NotSupportedException: Specified method is not supported 例外により失敗します。s390x
でテストを実行する場合は、Microsoft.NET.Test.Sdk
パッケージのバージョンを 17.0.0 以上に更新します。-
Visual Studio Code などの IDE によって使用される言語サーバーである OmniSharp は、
s390x
では使用できません。 RHEL 9 では、セキュリティーを強化するために、脆弱なセキュリティーアルゴリズムが複数無効になっています。
これらのアルゴリズムを使用する .NET API によっては、実行時に CryptographicExceptions で失敗します。脆弱なアルゴリズムを使用する必要があり、セキュリティー低下のリスクを取る場合には、以下を使用してシステムのセキュリティーポリシーを緩和できます。
# update-crypto-policies --set DEFAULT:SHA1
または
# update-crypto-policies --set LEGACY”
詳細は、RHEL 9 リリースノート 「セキュリティー」セクションにある主な変更点の概要を参照してください。
RHEL 9 では、そのままでは厳密な命名は機能しません。
RHEL 9 では、デフォルト設定で SHA-1 の使用が無効になっており、.NET は SHA-1+RSA を使用して、厳密な名前で署名されたアセンブリーを識別します。明示的な SHA-1+RSA アルゴリズムの組み合わせは、厳密な命名に関する ECMA-335 仕様に含まれています。ただし、RHEL 9 では、最近の SHA-1 に対する攻撃を考慮して、SHA-1 (RSA と組み合わせた場合) の使用を廃止して、オペレーティングシステム全体のセキュリティーを向上させました。そのため、ビルド時の検証など、厳密な命名を使用すると失敗します。
RHEL 9 で OpenSSL エラーが発生すると、ダイジェストアルゴリズムが無効であることがわかります。以下に例を示します。
error : Unhandled exception. Interop+Crypto+OpenSslCryptographicException: error:03000098:digital envelope routines::invalid digest
次のように、回避策が複数あります。
システムのセキュリティーポリシーを緩めて、SHA-1+RSA のサポートを有効にします。
# update-crypto-policies --set DEFAULT:SHA1
注記これは、FIPS が有効になっている場合は機能しません。FIPS モードでは、SHA-1 は全く使用できません。
Public Signing に切り替えます。これを行うには、プロジェクトファイルを修正して、プロパティーを複数設定する必要があります。
<PropertyGroup> <AssemblyOriginatorKeyFil>$(MSBuildThisFileDirectory)Key.snk</AssemblyOriginatorKeyFile> <SignAssembly>true</SignAssembly> <PublicSign Condition="'$(OS)' != 'Windows_NT'">true</PublicSign> </PropertyGroup>
NTLM テクノロジーは、RHEL 9 では安全ではないと考えられます。
NTLM 認証サポートを提供する
gss-ntlmssp
パッケージは、RHEL 9 から削除されました。そのため、RHEL 9 の .NET は NTLM に対して認証できなません。NLTM 認証を使用する場合は、別のメカニズムを使用して認証してください。詳細は、RHEL 9 の導入に関する考慮事項のアイデンティティー管理のセクション を参照してください。