dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.91k stars 4.63k forks source link

Update our runtime-deps packages to provide guidance for users on Ubuntu 24.04 #105046

Open jkoritzinsky opened 1 month ago

jkoritzinsky commented 1 month ago

For Ubuntu 24.04, Microsoft will not be providing packages for .NET as per https://github.com/dotnet/core/discussions/9258 and https://devblogs.microsoft.com/dotnet/whats-new-for-dotnet-in-ubuntu-2404/. Instead, Canonical will provide them.

However, when upgrading a machine from Ubuntu 22.04 to Ubuntu 24.04, it's easy to end up in a scenario where a user is using the Ubuntu 22.04 packages on Ubuntu 24.04. In #104754, we slightly improved the experience to not fail with an obscure error.

We should improve the experience further to provide a good error message on install that directs users to install .NET packages from Canonical's official package feeds instead of from packages.microsoft.com.

Additionally, we should update our "supported OS" documents to indicate to users that DEB packaged versions of .NET are only supported on Ubuntu 24.04 when installed from Canonical's package sources.

jkoritzinsky commented 1 month ago

https://github.com/dotnet/sdk/issues/39907 has more information from customers that have hit this before and the various mechanisms to force using the Microsoft packages in the past that they needed to find and remove.

richlander commented 1 month ago

@adegeo

MichaelSimons commented 1 month ago

We should improve the experience further to provide a good error message on install that directs users to install .NET packages from Canonical's official package feeds instead of from packages.microsoft.com.

[Triage] @jkoritzinsky - do you have something specific in mind? During this upgrade scenario, .NET has no installer logic that is running. Not sure how we can enhance the experience outside of documentation.

jkoritzinsky commented 1 month ago

I was thinking that the runtime-deps package would notify the user the next time it is upgraded, not when the distro version is upgraded (so likely within about a month of the distro upgrade, likely sooner).

This could be done through a postinst script in the deb package.

Alternatively, this could be done with a preinst script (also mentioned in the link above) that kills the install/upgrade on Ubuntu 24.04 at the start instead of the end.

adegeo commented 1 month ago

Unfortunately the .NET Uninstall Tool doesn't support Linux, otherwise, this would be a perfect scenario to have the tool cover.

NikolaMilosavljevic commented 3 weeks ago

[Triage] @richlander @ashnaga please provide input on the direction that should be taken. There's a questions of ROI.

richlander commented 3 weeks ago

I think this would be useful, but I'm not sure it is worth the effort. It also seems like something that could be hard to test (in terms of building up a lot of confidence). Last, it would be good to not be in the business of running code on people's machines (in this particular way) and protecting that code from unintended changes in PR.