1
0
mirror of synced 2025-12-25 02:14:57 -05:00

Update Linux support statements (#7971)

* Update Linux support statements

* Apply suggestions from code review

Co-authored-by: Jan Kotas <jkotas@microsoft.com>

* Apply suggestions from code review

Co-authored-by: Jan Kotas <jkotas@microsoft.com>

* Update per feedback

* Update per feedback

* Update linux-support.md

Co-authored-by: Omair Majid <omajid@redhat.com>

* Update per feedback

* Update per feedback

* Update wording

Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: Omair Majid <omajid@redhat.com>
This commit is contained in:
Rich Lander
2022-11-18 17:05:46 -08:00
committed by GitHub
parent 55d826823b
commit 4131427424
8 changed files with 154 additions and 19 deletions

69
linux-support.md Normal file
View File

@@ -0,0 +1,69 @@
# .NET Support and Compatibility for Linux Distributions
.NET is [supported by Microsoft](os-lifecycle-policy.md) and by [various commercial vendors and the community](linux.md) on multiple Linux distributions.
.NET can typically be run on any Linux distribution, via:
- The Microsoft build, which is built to be broadly compatible.
- Distribution-specific builds, which are built specifically for a given distribution version (like Red Hat Enterprise Linux 9 or Ubuntu 22.04).
## General dependencies
Microsoft 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)
## libc compatibility
Microsoft 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)
You can use the following pattern to determine the libc version provided for your distribution.
On Alpine 3.16:
```bash
# ldd --version
musl libc (aarch64)
Version 1.2.3
```
On Ubuntu 22.04:
```bash
# ldd --version
ldd (Ubuntu GLIBC 2.35-0ubuntu3.1) 2.35
```
## OpenSSL compatibility
Microsoft builds support both OpenSSL 1.x and 3.x and can be run on distributions with either version of this package. For example, Ubuntu 22.04 only includes OpenSSL 3 in its official package archive.
Microsoft builds will generally load the highest OpenSSL version it finds, but can be configured to use a specific version.
## Red Hat Enterprise Linux Family support
Microsoft builds support multiple Red Hat versions. New .NET versions will typically only be supported on RHEL era distributions in active support.
* RHEL 7 era distributions are considered in maintenance.
* RHEL 8 era distributions are considered in active support.
* RHEL 9 era distributions are considered in active support.
Red Hat family distributions include: AlmaLinux, CentOS, Oracle Linux, Red Hat Enterprise Linux, and Rocky Linux.
## Red Hat Commercial Support
Red Hat supports .NET via [Red Hat Enterprise Linux](http://redhatloves.net/), per the following.
- .NET 6 is supported in RHEL 7+.
- .NET 7 is supported in RHEL 8+.
## Ubuntu Family Support
Canonical supports .NET on Ubuntu via APT archives, per the following.
- .NET 6 is supported in Ubuntu 22.04+.
- .NET 7 is supported in Ubuntu 22.10+.

45
linux.md Normal file
View File

@@ -0,0 +1,45 @@
# .NET 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 is supported on Linux per [.NET Support and Compatibility for Linux Distributions](linux-support.md).
## Distribution archives
.NET is included in the [archives](https://pkgs.org/download/dotnet) of the following distributions:
- [Alpine Linux](https://pkgs.alpinelinux.org/packages?name=dotnet*)
- [Arch Linux](https://archlinux.org/packages/?q=dotnet)
- [Arch Linux User Repository](https://aur.archlinux.org/packages?K=dotnet)
- [Fedora](https://packages.fedoraproject.org/search?query=dotnet)
- [Red Hat Enterprise Linux](https://access.redhat.com/documentation/en-us/net/6.0)
- [Tizen](https://developer.samsung.com/tizen/About-Tizen.NET/Tizen.NET.html)
- [Ubuntu](https://packages.ubuntu.com/search?keywords=dotnet)
In general, you can install the .NET SDK via a versioned package, like `dotnet7` or `dotnet-sdk-7.0`. For example, on Ubuntu 22.10, you can install .NET via the following.
```bash
sudo apt update && sudo apt install -y dotnet-sdk-7.0
```
## Microsoft archives
Microsoft offers alternate feeds at [packages.microsoft.com](http://packages.microsoft.com/) that include the Microsoft binary build of .NET. They are document at [Install .NET on Linux](https://learn.microsoft.com/dotnet/core/install/linux).
You can move back-and-forth between distribution and Microsoft archives using a variety of [package manager patterns](https://learn.microsoft.com/dotnet/core/install/linux-package-mixup) and [previous challenges](https://github.com/dotnet/core/issues/7699) to guide you.
## Containers
.NET containers are published to multiple registries.
- [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)
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.
## Building .NET from source
.NET can be built from source via [dotnet/source-build](https://github.com/dotnet/source-build). This capability is expanding with [dotnet/dotnet](https://github.com/dotnet/dotnet) (which also uses source-build).
For distributions publishing packages, please follow [.NET Packaging Guidelines](https://learn.microsoft.com/dotnet/core/distribution-packaging#recommended-packages).

View File

@@ -1,20 +1,15 @@
# .NET Supported OS Policy
.NET is [supported by Microsoft](microsoft-support.md) on multiple operating systems.
A more restrictive policy is used for [.NET container images](https://github.com/dotnet/dotnet-docker/blob/main/documentation/supported-platforms.md).
.NET is supported on multiple operating systems per [.NET release policies](release-policies.md).
## Supported .NET versions
The following documents describe supported operating systems:
* [.NET 7 supported OS versions](release-notes/7.0/supported-os.md)
* [.NET 6 supported OS versions](release-notes/6.0/supported-os.md)
* [.NET Core 3.1 supported OS versions](release-notes/3.1/3.1-supported-os.md)
## Preview .NET versions
* [.NET 7 supported OS versions](release-notes/7.0/supported-os.md)
## Out-of-support .NET versions
The following documents describe (historical) supported operating systems:
@@ -33,9 +28,3 @@ Operating system versions are added and go out of support on a regular basis. We
* The support documents listed above
* [Monthly Update Announcements](https://github.com/dotnet/announcements/labels/Monthly-Update)
* [OS support tracking issues](https://github.com/dotnet/core/labels/os-support)
## Lifecycle Policy
Each supported operating system has a lifecycle defined by its sponsor organization (for example, Microsoft, Red Hat, Debian, or Apple). The .NET team applies each of those lifecycle schedules to inform adding and removing support for operating system versions. Support is typically removed when an operating system goes out of mainline support, at which point we stop testing and supporting it, and support documents are updated to match.
Operating system policies and schedules do not always align well with the annual .NET schedule. We have sometimes supported both [Windows](https://docs.microsoft.com/troubleshoot/windows-client/windows-7-eos-faq/windows-7-extended-security-updates-faq) and Linux versions after mainline (and possibly free) support has lapsed as a service to users to provide more time to transition to newer releases. The previous support documents are kept up to date and provide accurate information you can use to make your own support decisions.

View File

@@ -1,4 +1,4 @@
# Linux package dependencies
# .NET 6 Linux package dependencies
.NET 6 has several dependencies that must be satisfied to run .NET apps. The commands to install these libraries are listed for multiple Linux distributions.

View File

@@ -33,11 +33,18 @@ OS | Version | Architectures
[Debian][Debian] | 10+ | x64, Arm64, Arm32 | [Debian][Debian-lifecycle]
[Fedora][Fedora] | 33+ | x64 | [Fedora][Fedora-lifecycle]
[openSUSE][OpenSUSE] | 15+ | x64 | [OpenSUSE][OpenSUSE-lifecycle]
[Oracle Linux][Oracle-Linux] | 7+ | x64 | [Oracle][Oracle-lifecycle]
[Red Hat Enterprise Linux][RHEL] | 7+ | x64, Arm64 | [Red Hat][RHEL-lifecycle]
[SUSE Enterprise Linux (SLES)][SLES] | 12 SP2+ | x64 | [SUSE][SLES-lifecycle]
[Ubuntu][Ubuntu] | 16.04, 18.04, 20.04+ | x64, Arm64, Arm32 | [Ubuntu][Ubuntu-lifecycle]
Note: Newer distro versions include OpenSSL 3 and not OpenSSL 1.x. .NET 6 is the first .NET version to support OpenSSL3. You need to use .NET 6+ if you want to use a distro version that only offers OpenSSL 3, such as Ubuntu 22.04.
Other distributions are supported at best effort, per [.NET Support and Compatibility for Linux Distributions](../../linux-support.md).
### Libc compatibility
- x64: [glibc][glibc] 2.17 (from CentOS 7)
- Arm32, Arm64: [glibc][glibc] 2.23 (from Ubuntu 16.04)
- Alpine (x64 and Arm64): [musl][musl] 1.2.2 (from Alpine 3.13)
[Alpine]: https://alpinelinux.org/
[Alpine-lifecycle]: https://alpinelinux.org/releases/
@@ -57,6 +64,8 @@ Note: Newer distro versions include OpenSSL 3 and not OpenSSL 1.x. .NET 6 is the
[OpenSUSE-lifecycle]: https://en.opensuse.org/Lifetime
[OpenSUSE-docker]: https://hub.docker.com/r/opensuse/leap
[OpenSUSE-pm]: https://docs.microsoft.com/dotnet/core/install/linux-package-manager-opensuse15
[Oracle-Linux]: https://www.oracle.com/linux/
[Oracle-Lifecycle]: https://www.oracle.com/a/ocom/docs/elsp-lifetime-069338.pdf
[RHEL]: https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux
[RHEL-lifecycle]: https://access.redhat.com/support/policy/updates/errata/
[RHEL-msft-pm]: https://docs.microsoft.com/dotnet/core/install/linux-package-manager-rhel8
@@ -67,6 +76,8 @@ Note: Newer distro versions include OpenSSL 3 and not OpenSSL 1.x. .NET 6 is the
[Ubuntu]: https://ubuntu.com/
[Ubuntu-lifecycle]: https://wiki.ubuntu.com/Releases
[Ubuntu-pm]: https://docs.microsoft.com/dotnet/core/install/linux-package-manager-ubuntu-2004
[glibc]: https://www.gnu.org/software/libc/
[musl]: https://musl.libc.org/
## macOS

View File

@@ -1,4 +1,4 @@
# Linux package dependencies
# .NET 7 Linux package dependencies
.NET 7 has several dependencies that must be satisfied to run .NET apps. The commands to install these libraries are listed for multiple Linux distributions.

View File

@@ -30,11 +30,14 @@ OS | Version | Architectures
[Debian][Debian] | 10+ | x64, Arm64, Arm32 | [Debian][Debian-lifecycle]
[Fedora][Fedora] | 33+ | x64 | [Fedora][Fedora-lifecycle]
[openSUSE][OpenSUSE] | 15+ | x64 | [OpenSUSE][OpenSUSE-lifecycle]
[Oracle Linux][Oracle-Linux] | 7+ | x64 | [Oracle][Oracle-lifecycle]
[Red Hat Enterprise Linux][RHEL] | 7+ | x64, Arm64 | [Red Hat][RHEL-lifecycle]
[SUSE Enterprise Linux (SLES)][SLES] | 12 SP2+ | x64 | [SUSE][SLES-lifecycle]
[Ubuntu][Ubuntu] | 18.04+ | x64, Arm64, Arm32 | [Ubuntu][Ubuntu-lifecycle]
Other distros are supported with best effort if their libc version is at least the minimum supported libc version:
Other distributions are supported at best effort, per [.NET Support and Compatibility for Linux Distributions](../../linux-support.md).
### Libc compatibility
- x64: [glibc][glibc] 2.17 (from CentOS 7)
- Arm32, Arm64: [glibc][glibc] 2.27 (from Ubuntu 18.04)
@@ -58,6 +61,8 @@ Other distros are supported with best effort if their libc version is at least t
[OpenSUSE-lifecycle]: https://en.opensuse.org/Lifetime
[OpenSUSE-docker]: https://hub.docker.com/r/opensuse/leap
[OpenSUSE-pm]: https://docs.microsoft.com/dotnet/core/install/linux-package-manager-opensuse15
[Oracle-Linux]: https://www.oracle.com/linux/
[Oracle-Lifecycle]: https://www.oracle.com/a/ocom/docs/elsp-lifetime-069338.pdf
[RHEL]: https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux
[RHEL-lifecycle]: https://access.redhat.com/support/policy/updates/errata/
[RHEL-msft-pm]: https://docs.microsoft.com/dotnet/core/install/linux-package-manager-rhel8

View File

@@ -37,14 +37,30 @@ LTS and STS releases differ only by support duration. The .NET team follows the
Improvements are released as full re-releases of the product, called "patch releases". Patch releases are cumulative. Patches are released on the Microsoft "Patch Tuesday" (second Tuesday of each month), however there is no guarantee that there will be a .NET release on any given Patch Tuesday.
Breaking changes are not accepted during servicing, except in the rare case to mitigate a security vulnerability or other critical issue.
Patches are announced in [release notes](release-notes/README.md), on the [.NET blog](https://devblogs.microsoft.com/dotnet/category/maintenance-and-updates/), and [dotnet/announcements](https://github.com/dotnet/announcements/labels/Monthly-Update).
Breaking changes are not accepted during servicing, except in the rare case to mitigate a security vulnerability or other critical issue.
Patches are published at the [.NET Website](https://dotnet.microsoft.com/download/dotnet), [Microsoft Update](https://devblogs.microsoft.com/dotnet/net-core-updates-coming-to-microsoft-update/), and in [Linux archives and registries](./linux.md).
## End of support
As the end of support nears for a given .NET version, we strongly recommend you move to a newer, supported version of .NET. .NET releases that have reached end of support do not get security patches. Continuing to use an unsupported version will expose you to security vulnerabilities.
## Operating System support
Each supported operating system has a lifecycle, such as the [Ubuntu lifecycle](https://ubuntu.com/about/release-cycle). The .NET team applies each of the lifecycle policies to inform adding and removing support for operating system versions. Support is typically removed when an operating system goes out of mainline support, at which point we stop testing and supporting it.
Operating system policies and schedules do not always align with the .NET lifecycle. We have sometimes supported operating system versions after mainline support has lapsed as a service to users to provide more time to transition to newer releases. We may also stop supporting an operating system before support has ended, particularly if support time frames are very long.
Support documents are kept up to date to accurately inform your support policies.
[.NET Support and Compatibility for Linux Distributions](./linux-support.md) includes additional policies for Linux.
## Vendor support
[Microsoft offers support](microsoft-support.md) for .NET releases, per these policies. Updates are provided at the [.NET Website](https://dotnet.microsoft.com/download/dotnet), [Microsoft Update](https://devblogs.microsoft.com/dotnet/net-core-updates-coming-to-microsoft-update/), [Linux Package Managers](https://docs.microsoft.com/dotnet/core/install/linux), and the [Microsoft Artifact Registry](https://mcr.microsoft.com/catalog?search=dotnet/).
Multiple commercial vendors provide support for .NET, including:
* [Canonical](https://ubuntu.com/blog/install-dotnet-on-ubuntu)
* [Microsoft](microsoft-support.md)
* [Red Hat](http://redhatloves.net/)