Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup support wording #9364

Merged
merged 7 commits into from
Jun 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 1 addition & 57 deletions linux-support.md
Original file line number Diff line number Diff line change
@@ -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).
71 changes: 61 additions & 10 deletions linux.md
Original file line number Diff line number Diff line change
@@ -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:

Expand All @@ -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.

- [.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.

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.
- RHEL 7 is considered in maintenance.
- RHEL 8 is considered in active support.
- RHEL 9 is considered in active support.

## Building .NET from source

Expand Down
4 changes: 2 additions & 2 deletions os-lifecycle-policy.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand Down
31 changes: 17 additions & 14 deletions support.md
Original file line number Diff line number Diff line change
@@ -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)

## Commercial support

Official builds and commercial support is available from the following companies:
Commercial support is provided by the following companies.

## Canonical
### 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).
Loading