runtime: dotnet-sdk-2.1 package for OpenSUSE is broken

From @pavelbraginskiy on July 26, 2018 2:31

I don’t know if this is the correct repo for this issue, but I can’t think of a better place.

Steps to reproduce

Attempt to install .NET Core on OpenSUSE Tumbleweed following the instructions at https://www.microsoft.com/net/learn/get-started-with-dotnet-tutorial

Expected behavior

$ sudo zypper install dotnet-sdk-2.1
[sudo] password for root: 
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 6 NEW packages are going to be installed:
  aspnetcore-runtime-2.1 dotnet-host dotnet-hostfxr-2.1 dotnet-runtime-2.1 dotnet-runtime-deps-2.1 dotnet-sdk-2.1

6 new packages to install.
Overall download size: 163.1 MiB. Already cached: 0 B. After the operation, additional 163.1 MiB will be used.
Continue? [y/n/...? shows all options] (y):

Actual behavior

$ sudo zypper install dotnet-sdk-2.1
[sudo] password for root: 
Loading repository data...
Reading installed packages...
Resolving package dependencies...

Problem: nothing provides libicu52_1 needed by dotnet-runtime-deps-2.1-2.1.2-1.x86_64
 Solution 1: do not install dotnet-sdk-2.1-2.1.302-1.x86_64
 Solution 2: break dotnet-runtime-deps-2.1-2.1.2-1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or cancel [1/2/c] (c): 2
Resolving dependencies...
Resolving package dependencies...

The following 6 NEW packages are going to be installed:
  aspnetcore-runtime-2.1 dotnet-host dotnet-hostfxr-2.1 dotnet-runtime-2.1 dotnet-runtime-deps-2.1 dotnet-sdk-2.1

6 new packages to install.
Overall download size: 163.1 MiB. Already cached: 0 B. After the operation, additional 163.1 MiB will be used.
Continue? [y/n/...? shows all options] (y):

Environment data

dotnet --info output:

FailFast:
Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.

   at System.Environment.FailFast(System.String)
   at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode()
   at System.Globalization.GlobalizationMode..cctor()
   at System.Globalization.CultureData.CreateCultureWithInvariantData()
   at System.Globalization.CultureData.get_Invariant()
   at System.Globalization.CultureInfo..cctor()
   at System.StringComparer..cctor()
   at System.AppDomain.InitializeCompatibilityFlags()
   at System.AppDomain.Setup(System.Object)
[1]    3049 abort (core dumped)  TERM=xterm dotnet --info

dotnet --info output after setting System.Globalization.Invariant:

.NET Core SDK (reflecting any global.json):
 Version:   2.1.302
 Commit:    9048955601

Runtime Environment:
 OS Name:     opensuse-tumbleweed
 OS Version:  20180723
 OS Platform: Linux
 RID:         linux-x64
 Base Path:   /usr/share/dotnet/sdk/2.1.302/

Host (useful for support):
  Version: 2.1.2
  Commit:  811c3ce6c0

.NET Core SDKs installed:
  2.1.302 [/usr/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.2 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

Copied from original issue: dotnet/cli#9735

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 2
  • Comments: 23 (10 by maintainers)

Most upvoted comments

Installing on LEAP is broken again, and I’d expect on TW also based on what has been posted in this Issue. The maintainers of the the install and package should consider using something like the Open Build Service (https://openbuildservice.org/) to build packages so that with a common source packages can be targeted at numerous distros and distro versions. Package builds can be automated so that for instance rolling releases like Tumbleweed are created automatically for each distro release.

I’m reluctant to produce an installer for Tumbleweed. Its rolling nature would have us chasing our tails keeping up with dependencies. Installing from tar.gz should be the plan but even that does not work at the moment. The libicu version available on Tumbleweed is libicu-suse61_1 and even after installing that, dotnet fails to locate what it believes is a valid ICU package.