Compiling Unreal Engine 5 on Fedora 36 - how to overcome the .NET NuGet error.
Updated: Dec 21, 2022
In the new Linux versions, the DotNet SDK has conflicts with NSS or ca-certificates. Different types of failures are raised in relation to a specific operation. A more detailed explanation of the problem can be found here.
Compiling Unreal Engine on Linux had always been very straightforward. Unfortunately, on Fedora 36 we got the DotNet SDK conflict error.
Unable to load the service index for source https://api.nuget.org/v3/index.json
The error message above and others are raised in the moment of the project files generation, the last step before to run the command make to build Unreal.
OBS: for a complete overview of the process to download the Unreal Engine source files and respective compilation, see the official documentation at docs.unrealengine.com .
After extract the Unreal Engine source files, in the Terminal we execute sudo ./Setup to prepare the files to generate the Unreal project files. The second step is to generate these files. For this, we execute sudo ./GenerateProjectFiles. In this step, we got the DotNet NuGet error. It's not an Unreal Engine problem, neither a Linux distribution problem. It's an issue present in the new builds of NuGet .
The problem is solved in two steps:
1) Install the updated version of DotNet SDK on Fedora 36. We have two options: go here and download the version 6 or 7 and install it. The second option, the one I used and I recommend, is to type sudo dnf install dotnet in the Terminal. Fedora will download and install an updated DotNet 6 version that cleaned the NuGet issue.
After the installation, if we execute dotnet --info in the Terminal, we should see the provided information shown below:
2) We need to overwrite the Unreal Engine DotNet with the version that we just finished to install. The fastest way to do this, it is to open the file manager as administrator and do the operation. In my case, I am using the XFCE4 desktop environment, then I run sudo thunar in the Terminal to open up the Thunar file manager as root (admin). We need to go to /usr/lib64/dotnet/ and copy all files and folders.
Then, we go to the location we extracted the Unreal Engine source files, to the Engine/Binaries/ThirdParty/DotNet/Linux/ folder.
We paste the files and choose overwrite when asked. After that, when we run
sudo ./GenerateProjectFiles again, we see that the nasty NuGet error has gone and Unreal started to generate the project files.
The last step is to build Unreal with the command sudo make. When done, do not forget to give read and write permission to all users for the Unreal Engine folder and subfolders. If you don't do that, you'll receive write permission error messages when executing Unreal for the first time and the program will crash. The Unreal Engine binary is located inside <your unreal engine folder>/Engine/Binaries/Linux/. The file is the UnrealEditor, then you should type ./UnrealEditor in the terminal to run Unreal Engine 5. And That's all folks!
One last thing you should know:
Slick3d.art was selected as one of the Top 20 3D Art Blogs on the web by FeedSpot. It is a great victory to me. It is a huge effort in very hard times. Besides, Slick3d.art encompasses my love for design and writing that started in my teen years. I am very grateful for the recognition that was a total surprise. Click here to go to FeedSpot Top 20 list or click on the image down below.
And do not forget: Donation = Loving ❤
Help me to do more tutorials. Please, consider to make a donation if this content helped you.