Skip to content

Commit

Permalink
Cleanup support wording (#9364)
Browse files Browse the repository at this point in the history
* Cleanup wording

* Update wording

* Provide a better explanation on portable builds

* Update linux-support.md

Co-authored-by: Maira Wenzel <[email protected]>

* Merge all content into a single document

* Add additional container registries

* Update support.md

Co-authored-by: Jan Kotas <[email protected]>

---------

Co-authored-by: Maira Wenzel <[email protected]>
Co-authored-by: Jan Kotas <[email protected]>
  • Loading branch information
3 people authored Jun 26, 2024
1 parent 763e620 commit e1e716d
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 83 deletions.
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).

0 comments on commit e1e716d

Please sign in to comment.