This issue is created to track progress for the work to enable Fedora 33 support for .NET Core 3.1 and .NET 5.
[CoreCLR/CoreFX] Runtime / RID Support update
Done via https://github.com/dotnet/runtime/pull/32752 (master, 5.0) https://github.com/dotnet/corefx/pull/42871 (release/3.1) and https://github.com/dotnet/corefx/pull/42872 (release/2.1)
@rbhanda Hey there. According to @lukexuan .NET 5 isn't showing up in the fedora feeds.
@lukexuan what version of fedora are you using?
I'm using Fedora 33. This is what I see from dnf search dotnet --refresh:
================================================================= Name Exactly Matched: dotnet =================================================================
dotnet.x86_64 : .NET Core CLI tools and runtime
===================================================================== Name Matched: dotnet =====================================================================
dotnet-apphost-pack-3.1.x86_64 : Targeting Pack for Microsoft.NETCore.App 3.1
dotnet-build-reference-packages.x86_64 : Reference packages needed by the .NET Core SDK build
dotnet-host.x86_64 : .NET command line launcher
dotnet-hostfxr-3.1.x86_64 : .NET Core command line host resolver
dotnet-runtime-3.1.x86_64 : NET Core 3.1 runtime
dotnet-sdk-3.1.x86_64 : .NET Core 3.1 Software Development Kit
dotnet-sdk-3.1-source-built-artifacts.x86_64 : Internal package for building .NET Core 3.1 Software Development Kit
dotnet-targeting-pack-3.1.x86_64 : Targeting Pack for Microsoft.NETCore.App 3.1
dotnet-templates-3.1.x86_64 : .NET Core 3.1 templates
The packages without the version suffix are also for 3.1, as demonstrated by dnf info dotnet:
Installed Packages
Name : dotnet
Version : 3.1.109
Release : 1.fc33
Architecture : x86_64
Size : 0.0
Source : dotnet3.1-3.1.109-1.fc33.src.rpm
Repository : @System
From repo : updates
Summary : .NET Core CLI tools and runtime
URL : https://github.com/dotnet/
License : MIT and ASL 2.0 and BSD and LGPLv2+ and CC-BY and CC0 and MS-PL and EPL-1.0 and GPL+ and GPLv2 and ISC and OFL and zlib
Description : .NET Core is a fast, lightweight and modular platform for creating
: cross platform applications that work on Linux, macOS and Windows.
:
: It particularly focuses on creating console applications, web
: applications and micro-services.
:
: .NET Core contains a runtime conforming to .NET Standards a set of
: framework libraries, an SDK containing compilers and a 'dotnet'
: application to drive everything.
In case it's useful, the following is the output of dnf repolist:
repo id repo name
fedora Fedora 33 - x86_64
fedora-cisco-openh264 Fedora 33 openh264 (From Cisco) - x86_64
fedora-modular Fedora Modular 33 - x86_64
google-chrome google-chrome
mono-centos8-stable mono-centos8-stable
rpmfusion-free RPM Fusion for Fedora 33 - Free
rpmfusion-free-updates RPM Fusion for Fedora 33 - Free - Updates
rpmfusion-nonfree RPM Fusion for Fedora 33 - Nonfree
rpmfusion-nonfree-updates RPM Fusion for Fedora 33 - Nonfree - Updates
slack slack
updates Fedora 33 - x86_64 - Updates
updates-modular Fedora Modular 33 - x86_64 - Updates
If you follow the instructions on release notes are you still installing 3.1.109 instead of .NET 5?
I can see that .NET 5 is available on package feed at https://packages.microsoft.com/fedora/33/prod/
@rbhanda is this a case of the "default" feeds? Fedora 32 had Core 3.1 in the default feed (no instructions given to include a microsoft specific package feed), is it not available in the default feed for 33?
https://www.reddit.com/r/Fedora/comments/jt0zvf/how_to_get_net_5_sdk_in_fedora_33/ has a similar issue.
It seems like the Microsoft documentation says "use the Fedora packages" which is a good idea, except when the Fedora packages are not ready yet - basically what happened with 5.0 :disappointed:
In that case, perhaps the docs can point to https://packages.microsoft.com/fedora/33/prod/ as the alternate mechanism?
The instructions on release notes doesn't ask me to add Microsoft's repo into yum.repos.d, where instructions for older fedora versions are included.
I'm fine adding Microsoft's repo config, since the updates repo maintained by donet-sig might lag behind Microsoft's release to some degree. However, I believe it should be clearly documented on dotnet's website.
@omajid Is this the same case with RHEL?
@lukexuan @rbhanda I'm updating the docs via dotnet/docs#21526
@omajid Is this the same case with RHEL?
Pretty much. RHEL 8 has .NET 5 packages, except they are old (5.0 Preview 8 right now). RHEL 7 doesn't have any .NET 5 packages. It's the same underlying issue as Fedora since they all use the same source (https://github.com/dotnet/source-build) as the mechanism for building .NET (Core) packages.
If customers want to use .NET 5 right now on CentOS, Fedora or RHEL, they should probably get it from Microsoft because the other versions are missing or too old.
We (Red Hat and Microsoft) are trying to fix this but it will take a while (probably a few weeks) to resolve completely.
Thanks I'll update these too
I'm currently on Fedora 33 but I work on a lot of projects targeting .NET Core 2.1.
I just spent half an hour troubleshooting very weird issues because I had added the Microsoft Yum repo and apparently that recently has started conflicting with the Fedora repo. Long story short I followed the instructions at https://github.com/dotnet/sdk/issues/11533#issuecomment-622988566.
Now I have the dotnet-sdk-3.1 installed from Fedora repo but I can't run any unit test projects as these are targeting 2.1 currently.
How can I best get dotnet-sdk-2.1 on my machine too?
Edit: answer seems to be at https://github.com/dotnet/core/issues/4655#issuecomment-625477219 (for anyone coming after me).
Now I have to tinker some more with repositories and yum configuration... I hope Microsoft can sort this mess out - I'm sorry for calling it that, but this has not exactly been a pleasant experience. Especially considering that the documentation does not seem to mention any of these caveats, and on top of that 2.1 is officially supported on Fedora 33.
Edit 2:
After following the mentioned instructions, I have successfully installed dotnet-sdk-2.1, but now it seems impossible to install dotnet-sdk-3.1 as well!
sudo dnf install dotnet-sdk-3.1
Last metadata expiration check: 0:03:48 ago on do 03 dec 2020 18:18:01.
Error:
Problem: conflicting requests
- package dotnet-sdk-3.1-3.1.109-1.x86_64 requires dotnet-targeting-pack-3.1, but none of the providers can be installed
- package dotnet-sdk-3.1-3.1.110-1.x86_64 requires dotnet-targeting-pack-3.1, but none of the providers can be installed
- package dotnet-sdk-3.1-3.1.403-1.x86_64 requires dotnet-targeting-pack-3.1, but none of the providers can be installed
- package dotnet-sdk-3.1-3.1.404-1.x86_64 requires dotnet-targeting-pack-3.1, but none of the providers can be installed
- package dotnet-targeting-pack-3.1-3.1.10-1.fc33.x86_64 is filtered out by exclude filtering
- package dotnet-targeting-pack-3.1-3.1.8-1.fc33.x86_64 is filtered out by exclude filtering
(try to add '--skip-broken' to skip uninstallable packages)
@rbhanda Looks like dotnet-targeting-pack-3.1 is missing from https://packages.microsoft.com/fedora/33/prod/. I see the 5.0 targeting pack there, but not 3.1. Do you know who can fix this?
3.1 packages should be available on https://packages.microsoft.com/fedora/33/prod/ now
@rbhanda thanks for the swift intervention, but alas I still have the same problem. If you open the URL in a browser you get an index, and indeed dotnet-targeting-pack-3.1 is still not on there.
@mario-d-s I have updated the prod feed. https://packages.microsoft.com/fedora/33/prod/dotnet-targeting-pack-3.1.0-x64.rpm is now available
@rbhanda Hi, by the way, this ticket was also similarly vague in what the "support" means. Binary release is not, never was, and never will be a proper support. We ship packages in Fedora proper, that is proper "support." Those are a few months after binary release due to the source-build lag. (And 2.1 is just completely incompatible with open source type of publishing, so that's not gonna happen at all.)
Especially with the shift of .NET 6 further towards open source development and source-build gaining ever increasing importance, the wording with these kinds of tracking issues should also shift. Binary release should not be considered proper release, or "support."
Thanks for the fix. I was able to install dotnet-sdk-3.1 now.
But I would like to know what the plans are for .NET Core in the official Fedora repositories. Core 2.1 has a bit of support in it left, so will it be "migrated"?
To be clear: as a professional .NET developer on Linux, I specifically chose Fedora because it is officially supported by .NET and I like it by far the most between the other choices. But for "officially supported", I found this experience to be quite a bump in the road. The docs are not clear on what is in the official Fedora repo and what needs the MS repo. And even if you do the MS repo, you are going to run into conflicts with the official repo that are not documented either.
I would appreciate if the team still works to smoothen this out further to have a good out-of-the-box experience because I can imagine a lot of people are going through the same trouble.
@mario-d-s 2.1 is too old for us to backport A LOT of work that went into being able to properly build dotnet from source. Long story short is, that 2.1 can not be built from source code, and therefor it can not be packaged in Fedora.
Fedora ships 3.1 and will ship 5.0 (which was also not possible to build from source until 3 days ago) Everything around these versions is (will be) in Fedora, you do not need any additional repositories. Simply type dnf install dotnet and you will get the latest sdk.
@mario-d-s the recommended way is to not use MS repositories at all, for any version. If you need both 3.1 and 2.1 you can use our copr repository for 2.1 which is compatible with Fedora proper and 3.1 and will work side by side.
The end user can actually google all this - if they only click on the links that say fedoraproject.org instead of the microsoft.com ones ;) ;)
@RheaAyase thanks for the additional info! I will follow your recommendation of switching to the COPR repository. Indeed googling a bit more I could have found this too. I was convinced however that it was Microsoft/.NET that should be supporting Fedora and not the other way around. Goes to show how much hard work the Fedora people are actually doing and it all adds up to what a great distro it is indeed. Thanks for that!
5.0 is also in the mentioned copr now
Most helpful comment
@mario-d-s I have updated the prod feed. https://packages.microsoft.com/fedora/33/prod/dotnet-targeting-pack-3.1.0-x64.rpm is now available