diff --git a/linux-support.md b/linux-support.md index 55ff2cfaa..c7078f5cb 100644 --- a/linux-support.md +++ b/linux-support.md @@ -1,59 +1,3 @@ # .NET Support and Compatibility for Linux Distributions -.NET is supported by various [commercial and community organizations](support.md) on [multiple Linux distributions](linux.md). - -.NET can be run on any Linux distribution, via: - -- Portable builds, which are built to be broadly compatible with most Linux distributions. -- Distribution-specific builds, which are built specifically for a given distribution version (like Red Hat Enterprise Linux 9 or Ubuntu 22.04). - -Microsoft builds are portable builds. - -## General dependencies - -Portable builds have multiple dependencies that must be installed: - -- [.NET 6 dependencies](./release-notes/6.0/linux-packages.md) -- [.NET 7 dependencies](./release-notes/7.0/linux-packages.md) -- [.NET 8 dependencies](./release-notes/8.0/linux-packages.md) - -## libc compatibility - -Portable builds supports both [glibc](https://www.gnu.org/software/libc/)-based and [musl libc](https://musl.libc.org/)-based Linux distributions, per the following minimum version information. - -- [.NET 6 minimum libc](release-notes/6.0/supported-os.md#libc-compatibility) -- [.NET 7 minimum libc](release-notes/7.0/supported-os.md#libc-compatibility) -- [.NET 8 minimum libc](release-notes/8.0/supported-os.md#libc-compatibility) - -You can use the following pattern to determine the libc version provided for your distribution. - -On Alpine: - -```bash -# ldd --version -musl libc (aarch64) -Version 1.2.3 -``` - -On Ubuntu: - -```bash -# ldd --version -ldd (Ubuntu GLIBC 2.35-0ubuntu3.1) 2.35 -``` - -## OpenSSL compatibility - -Portable builds support both OpenSSL 1.x and 3.x and can be run on distributions with either version of OpenSSL. For example, Ubuntu 22.04 only includes OpenSSL 3 in its official package archive. - -The highest OpenSSL version is loaded by default, but it can be [configured to use a specific version](https://github.com/dotnet/runtime/issues/79153#issuecomment-1335476471). - -## Red Hat Enterprise Linux support - -New .NET versions will typically only be supported on Red Hat Enterprise Linux (RHEL) versions in active support. - -- RHEL 7 is considered in maintenance. -- RHEL 8 is considered in active support. -- RHEL 9 is considered in active support. - -RHEL compatible distributions are supported, including: AlmaLinux, CentOS, Oracle Linux, and Rocky Linux. +This content has been moved to [linux.md](linux.md). \ No newline at end of file diff --git a/linux.md b/linux.md index 97c246a14..480b79369 100644 --- a/linux.md +++ b/linux.md @@ -1,10 +1,22 @@ -# .NET for Linux Distributions +# .NET Support and Compatibility for Linux Distributions -.NET can be installed on Linux in multiple ways, via [packages](https://learn.microsoft.com/dotnet/core/install/linux), [scripts](https://github.com/dotnet/install-scripts), or [tarballs](https://dotnet.microsoft.com/download/dotnet). It can be installed globally, locally/privately, or with an app. +.NET can be [installed](https://learn.microsoft.com/dotnet/core/install/linux) and run on almost any Linux distribution. Packages that are available in a given distribution are compatible with that distribution. Packages and binaries from Microsoft are compatible with a broad set of distributions. -.NET is supported on Linux per [.NET Support and Compatibility for Linux Distributions](linux-support.md). +The community provides best effort support for .NET across all Linux distributions. [Commercial support](support.md) is provided for some popular distributions. -## Package archives +## Containers + +.NET containers are published to multiple registries. + +- [Chainguard Images](https://images.chainguard.dev/directory/image/dotnet-sdk/versions) +- [Microsoft Artifact Repository](https://mcr.microsoft.com/catalog?search=dotnet/) +- [OpenShift](https://developers.redhat.com/blog/2018/07/05/deploy-dotnet-core-apps-openshift) +- [SUSE Linux Enterprise Server Container Images](https://registry.suse.com/repositories?languages%5B%5D=dotnet) +- [Ubuntu Rocks](https://hub.docker.com/r/ubuntu/dotnet-aspnet) + +Note: Microsoft publishes container images per [.NET container publishing policy](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-platforms.md). Other distributions may have different policies. + +## Packages .NET is included in the package archives of the following distributions: @@ -28,15 +40,54 @@ Microsoft offers alternate package feeds at [packages.microsoft.com](http://pack Microsoft is [no longer publishing packages for Ubuntu starting with Ubuntu 24.04](https://github.com/dotnet/core/discussions/9258). -## Containers +[SDK feature bands](https://learn.microsoft.com/en-us/dotnet/core/releases-and-support#feature-bands-sdk-only) are the only significant difference between Microsoft and distro-provided builds. Distro-provided SDK builds are always within the `.1xx` feature band, while Microsoft SDK builds are always for the latest feature band, for example `.2xx`. -.NET containers are published to multiple registries. +## Dependencies -- [Microsoft Artifact Repository](https://mcr.microsoft.com/catalog?search=dotnet/) -- [OpenShift](https://developers.redhat.com/blog/2018/07/05/deploy-dotnet-core-apps-openshift) -- [Ubuntu Rocks](https://hub.docker.com/r/ubuntu/dotnet-aspnet) +.NET has multiple dependencies that must be installed. If you install .NET via packages, these packages will typically already be installed. -Microsoft publishes container images per [.NET container publishing policy](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-platforms.md). Other distributions may have different policies. +- [.NET 6 dependencies](./release-notes/6.0/linux-packages.md) +- [.NET 8 dependencies](./release-notes/8.0/linux-packages.md) +- [.NET 9 dependencies](./release-notes/9.0/linux-packages.md) + +## Portable build compatibility + +Portable builds are compiled to provide [broad compatibility](https://github.com/dotnet/runtime/issues/83428). The minimum supported libc version is documented in [.NET Supported OS Policy](./os-lifecycle-policy.md). + +Microsoft provides [portable builds](https://dotnet.microsoft.com/download/dotnet) that support both [glibc](https://www.gnu.org/software/libc/)-based and [musl libc](https://musl.libc.org/)-based Linux distributions. + +The following examples demonstrate how to find the libc version provided for your distribution. + +On Alpine 3.13: + +```bash +# ldd --version +musl libc (aarch64) +Version 1.2.2 +``` + +On Ubuntu 16.04: + +```bash +# ldd --version +ldd (Ubuntu GLIBC 2.23-0ubuntu11.3) 2.23 +``` + +## OpenSSL compatibility + +Portable builds support both OpenSSL 1.x and 3.x and can be run on distributions with either version of OpenSSL. For example, Ubuntu 22.04 only includes OpenSSL 3 in its official package archive. + +The highest OpenSSL version is loaded by default, but it can be [configured to use a specific version](https://github.com/dotnet/runtime/issues/79153#issuecomment-1335476471). + +## Red Hat Enterprise Linux support + +RHEL-compatible distributions are supported, including: AlmaLinux, CentOS Stream, Oracle Linux, and Rocky Linux. + +New .NET versions will typically only be supported on Red Hat Enterprise Linux (RHEL) versions in active support. + +- RHEL 7 is considered in maintenance. +- RHEL 8 is considered in active support. +- RHEL 9 is considered in active support. ## Building .NET from source diff --git a/os-lifecycle-policy.md b/os-lifecycle-policy.md index 6672de87f..68c80454f 100644 --- a/os-lifecycle-policy.md +++ b/os-lifecycle-policy.md @@ -7,7 +7,6 @@ The following documents describe supported operating systems: * [.NET 8 supported OS versions](release-notes/8.0/supported-os.md) -* [.NET 7 supported OS versions](release-notes/7.0/supported-os.md) * [.NET 6 supported OS versions](release-notes/6.0/supported-os.md) ## Preview .NET versions @@ -18,8 +17,9 @@ The following documents describe supported operating systems: The following documents describe (historical) supported operating systems: -* [.NET Core 3.1 supported OS versions](release-notes/3.1/3.1-supported-os.md) +* [.NET 7 supported OS versions](release-notes/7.0/supported-os.md) * [.NET 5 supported OS versions](release-notes/5.0/5.0-supported-os.md) +* [.NET Core 3.1 supported OS versions](release-notes/3.1/3.1-supported-os.md) * [.NET Core 3.0 supported OS versions](release-notes/3.0/3.0-supported-os.md) * [.NET Core 2.2 supported OS versions](release-notes/2.2/2.2-supported-os.md) * [.NET Core 2.1 supported OS versions](release-notes/2.1/2.1-supported-os.md) diff --git a/support.md b/support.md index 324889ba5..80e23d5d9 100644 --- a/support.md +++ b/support.md @@ -1,35 +1,38 @@ -# .NET Support and Distributions +# .NET Support -.NET is available (as a binary distribution) in many package managers and official download sites. These builds of .NET are provided and supported by organizations that participate in the .NET community, [build .NET from source](https://github.com/dotnet/dotnet), and offer stable binaries to their users. These organizations work together to enable developers to be productive and safe on Linux, macOS, and Windows. +.NET binaries, packages, and container images are provided and supported by organizations that participate in the .NET community, [build .NET from source](https://github.com/dotnet/dotnet), and offer regularly updated assets to their users. These organizations work together to enable developers to be productive and safe on Linux, macOS, and Windows. -Patches are provided for functional or security issues, typically monthly on [Patch Tuesday](https://en.wikipedia.org/wiki/Patch_Tuesday). +## Policies .NET is supported per the following policies: * [.NET releases](releases.md) * [.NET release policies](release-policies.md) -* [.NET supported operating system lifecycle](os-lifecycle-policy.md). +* [.NET supported operating system lifecycle](os-lifecycle-policy.md) + +## Community support Community support is available on GitHub, such as at [dotnet/core](https://github.com/dotnet/core). -Community builds are available for [Linux](linux.md) and [macOS](https://formulae.brew.sh/cask/dotnet-sdk). +Community builds are available for [FreeBSD](https://wiki.freebsd.org/.NET), [Linux](linux.md), and [macOS](https://formulae.brew.sh/cask/dotnet-sdk) -Official builds and commercial support is available from the following companies: +## Commercial support -## Canonical +Commercial support is provided by the following companies. + +### Canonical Canonical supports .NET on Ubuntu, per the following. -- .NET 6 is supported in Ubuntu 22.04. -- .NET 7 is supported in Ubuntu 22.04. -- .NET 8 is supported in Ubuntu 23.10+. +* .NET 6 is supported in Ubuntu 22.04+ +* .NET 8 is supported in Ubuntu 22.04+. -## Microsoft +### Microsoft -Microsoft provides [stable builds](https://dotnet.microsoft.com/download) and [commercial support](https://support.serviceshub.microsoft.com/supportforbusiness/onboarding) for .NET on Linux, macOS, and Windows, per [.NET support policy](https://dotnet.microsoft.com/platform/support/policy). +Microsoft provides [stable builds](https://dotnet.microsoft.com/download) and [commercial support](https://support.serviceshub.microsoft.com/supportforbusiness/onboarding) for .NET on [multiple operating systems](os-lifecycle-policy.md), per [.NET support policy](https://dotnet.microsoft.com/platform/support/policy). -A more restrictive policy is used for [.NET container images](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-platforms.md). +.NET container images are provided for a more limited set of [operating system versions](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-platforms.md). -## Red Hat +### Red Hat Red Hat supports .NET on Red Hat Enterprise Linux, per [.NET life cycle policy](https://access.redhat.com/support/policy/updates/net-core).