-
Notifications
You must be signed in to change notification settings - Fork 4.9k
Update Linux support statements #7971
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
Conversation
linux-support.md
Outdated
.NET can be installed on your distribution using one of the follow approaches: | ||
|
||
* Install from the [official archive for your distribution](./linux.md). | ||
* Install the [Microsoft Linux build](https://dotnet.microsoft.com/download), which is built to run on any distro with compatible dependencies (including libc). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://dotnet.microsoft.com/download link auto-detects the OS, so it won't show you how to install on Linux unless you are actually on Linux box.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can force it to show linux by using https://dotnet.microsoft.com/download?initial-os=linux
linux-support.md
Outdated
|
||
* Install from the [official archive for your distribution](./linux.md). | ||
* Install the [Microsoft Linux build](https://dotnet.microsoft.com/download), which is built to run on any distro with compatible dependencies (including libc). | ||
* Build from source via [dotnet/source-build](https://github.com/dotnet/source-build). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Build from source via [dotnet/source-build](https://github.com/dotnet/source-build). |
I would delete it from here and just leave the paragraph at the end of linux.md. This is very advanced option.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was wanting to leave something for distro-owners. How should we communicate that. I think they are more likely to find these files than dotnet/source-build.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we add a call to action like "If you are interested in packaging .NET for your distribution, please see to get started"?
linux-support.md
Outdated
.NET has two policies for OpenSSL: | ||
|
||
- When built into a distro archive, .NET will load a specific OpenSSL version, per the distro archive policy. | ||
- When built by Microsoft (as a portable Linux build), .NET will the highest OpenSSL version it finds (that it supports), but can be configured to use a specific version. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is... true... but not always.
If we add support for a new OpenSSL via servicing it gets added as the lowest priority. (IIRC, we added support for 1.1.x lower than 1.0.x because we did so late or in servicing; then made 1.1.x the higher priority in the next release)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't realize that. That's certainly good context, but it is also messy. Do you have a specific edit you'd like me to take?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not a specific edit, no. Though throwing in a weasel word like "generally" is probably good enough.
When built by Microsoft (as a portable Linux build), .NET will generally use the highest OpenSSL version it finds (that it supports), but can be configured to use a specific version.
Perhaps?
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
See: dotnet/docs#32638 |
linux-support.md
Outdated
.NET can be installed on your distribution using one of the following approaches: | ||
|
||
* Install from the [official archive for your distribution](./linux.md). | ||
* Install the [Microsoft Linux build](https://dotnet.microsoft.com/download/dotnet), which is built to run on any distro with compatible dependencies (including libc). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
* Install the [Microsoft Linux build](https://dotnet.microsoft.com/download/dotnet), which is built to run on any distro with compatible dependencies (including libc). | |
* Install the [Microsoft Linux build](https://dotnet.microsoft.com/download?initial-os=linux), which is built to run on any distro with compatible dependencies (including libc). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://dotnet.microsoft.com/download?initial-os=linux just has a big button that points to the doc page with the actual install instructions.
Should we link https://learn.microsoft.com/en-us/dotnet/core/install/linux directly from here to skip the click-through?
linux.md
Outdated
@@ -0,0 +1,40 @@ | |||
# .NET for Linux Distributions | |||
|
|||
.NET can be [installed on Linux](https://learn.microsoft.com/dotnet/core/install/linux) in multiple ways, via packages, [scripts](https://github.com/dotnet/install-scripts), or [tarballs](https://dotnet.microsoft.com/en-us/download). It can be installed globally, locally/privately, or with an app. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.NET can be [installed on Linux](https://learn.microsoft.com/dotnet/core/install/linux) in multiple ways, via packages, [scripts](https://github.com/dotnet/install-scripts), or [tarballs](https://dotnet.microsoft.com/en-us/download). It can be installed globally, locally/privately, or with an app. | |
.NET can be [installed on Linux](https://learn.microsoft.com/dotnet/core/install/linux) in multiple ways, via packages, [scripts](https://github.com/dotnet/install-scripts), or [tarballs](https://dotnet.microsoft.com/download?initial-os=linux). It can be installed globally, locally/privately, or with an app. |
linux-support.md
Outdated
.NET has two policies for OpenSSL: | ||
|
||
- When built into a distro archive, .NET will load a specific OpenSSL version, per the distro archive policy. | ||
- When built by Microsoft (as a portable Linux build), .NET will load the highest OpenSSL version it finds (that it supports), but can be configured to use a specific version. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is a nuance here in that when we added support for a newer OpenSSL version to an existing release (eg dotnet/corefx#34443) we tried to make sure it still looks for OpenSSL versions in the same order as before the modification.
linux-support.md
Outdated
|
||
New .NET versions will typically only be supported on RHEL era distributions in active support. Check [release notes](./release-notes/README.md) for a given .NET version for specific support information. | ||
|
||
Red Hat family distributions include: AlmaLinux, CentOS, Fedora, Oracle Linux, Red Hat Enterprise Linux, and Rocky Linux. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fedora is a bit of an odd one in this list. All others are RHEL or RHEL rebuilds. They follow the same versions as RHEL (and the list above). Fedora has it's own versions, schedules, releases and versions of components like openssl and glibc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not saying that Fedora shouldn't be supported, but I am not sure it belongs in a list where very other distro is a rebuild of RHEL.
.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) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@aslicerh should we point to the Red Hat container catalog here too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Works for me! Please update it. You choose.
linux.md
Outdated
- [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). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we talk about the policies of others (eg, Rocks, Red Hat), even if it's "others may have a different policy"?
linux.md
Outdated
|
||
.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 the [official packaging guidelines](https://learn.microsoft.com/dotnet/core/distribution-packaging#recommended-packages). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we add some motivation here? Something like "Not following this will probably break the Side-by-Side versioning experience of .NET"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That context should be in the linked document, IMO.
linux-support.md
Outdated
@@ -0,0 +1,55 @@ | |||
# .NET Support and Compatibility for Linux Distributions | |||
|
|||
.NET is officially supported on multiple [Linux distributions](os-support-lifecycle.md) and [supported by the community on several others](linux.md). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
officially supported
I would avoid "officially" in these docs. It feels superfluous and/or ambiguous.
- Officially supported -> Supported by Microsoft
- Official packaging guidelines -> packaging guidelines. (We do not have non-official packaging guidelines.)
linux-support.md
Outdated
|
||
## Linux distributions support | ||
|
||
.NET can typically be run on any Linux distribution. Commercially supported distributions are listed in [.NET Supported OS Policy](./os-lifecycle-policy.md), while other distributions are supported at best effort per the compatibility rules above. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tizen is commercially supported Linux distro as well...
ldd (Ubuntu GLIBC 2.35-0ubuntu3.1) 2.35 | ||
``` | ||
|
||
## OpenSSL compatibility |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar compatibility constrains and policies apply to ICU and other unmanaged dependencies.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It includes libc when built into distro archive. dotnet binaries built into distro archive target glibc version targeted by the distro. The versions from the previous paragraph do not apply.
Would it be better to start this doc by saying that the dotnet built into a distro archive is typically hardbound to the specific versions of libraries included in the distro. And the rest of the doc would only talk about policies used by (Microsoft) portable build.
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
I believe I addressed most/all of the feedback. @bartonjs -- Is there a link for how to configure which OpenSSL version you want to use? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
linux.md
Outdated
|
||
.NET is supported on Linux per [.NET Support and Compatibility for Linux Distributions](linux-support.md). | ||
|
||
## Official archives |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be appropriate to include a small caution note in this section for any customers migrating from packages.microsoft.com usage?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. Good call.
We could link to this, or is it too specific? #7699
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's also https://github.com/dotnet/docs/blob/main/docs/core/install/linux-package-mixup.md that provides similar info
Co-authored-by: Omair Majid <omajid@redhat.com>
No description provided.