sdk: Failed to initialize CoreCLR, HRESULT: 0x80131500

Steps to reproduce

  1. Download https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-dev-centos-x64.latest.tar.gz
  2. Unpack tar file
  3. Set DOTNET_HOME as unzipped folder. [usr/share/dotnet]
  4. Change permission settings for unzipped folder dotnet
  5. run dotnet -version

Expected behavior

Should give version number

Actual behavior

Gives error message Failed to initialize Failed to initialize CoreCLR, HRESULT: 0x80131500

Environment data

dotnet --version output: Failed to initialize CoreCLR, HRESULT: 0x80131500

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Reactions: 2
  • Comments: 70 (11 by maintainers)

Commits related to this issue

Most upvoted comments

You can find out what is missing by running:

find /opt/dotnet -name '*.so' -type f -print | xargs ldd | grep 'not found'

Replace /opt/dotnet with the directory you “un-tarred” the tar ball to.

This seems to have solved my issue 😕

wget http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu52_52.1-8ubuntu0.2_amd64.deb
sudo dpkg -i libicu52_52.1-8ubuntu0.2_amd64.deb

Another way to get it running on Fedora 24 and other distros using too recent ICU (provided to me by @scela)

  1. download libicu-54.1-5.fc23.x86_64.rpm from wherver ( eg http://mirror.yandex.ru/fedora/linux/releases/23/Workstation/x86_64/os/Packages/l/libicu-54.1-5.fc23.x86_64.rpm )
  2. open it with archive manager, go to ./usr/lib64 and extract all the .so files to ~/oldicu
  3. now execute: LD_LIBRARY_PATH=~/oldicu/:$LD_LIBRARY_PATH dotnet instead of invoking directly dotnet.

This has the advantage of not forcing installation of older icu (which can lead to other issues for package requiring newer icu). Also I imagine this would work with any Linux distribution facing this issue. You can also tweak your .bashrc to define alias dotnet=LD_LIBRARY_PATH=~/oldicu/:$LD_LIBRARY_PATH dotnet, but since alias aren’t inherited, it’s not working when running scripts, so one had to use source script.sh instead of ./script.sh if they want to take advantage of their alias.

Same problem on Fedora 24, with the following library versions: libunwind-1.1-11.fc24.x86_64 libicu-56.1-4.fc24.x86_64

It is fixed in master now, if you download 2.0 nightlies from dotnet/cli things should work.

There are no plans to back port the changes to 1.0 or 1.1.

Any ideas for this in OpenSUSE Leap? I’ve installed the package icu and libicu52_1 and get this same issue.

For Ubuntu 16.04, installing libicu52 from trusty-security seems to fix the problem.

I also has the same problem. I’m trying it on Fedora 23 (downloaded Centos binaries).

I know that Fedora is not listed in supported distributions but I just wanted to try. Probably the reason for error is the same as for Ubuntu 16.04 (version of the icu is newer in Fedora 23 and Ubuntu 16.04, compared to Debian 8, CentOS 7 and Ubuntu 14.04)

Had the same problem running Kali linux. Turned out that I had a newer version of libicu and libicu-dev installed (v55 I believe) and dotnet wanted version 52. All I had to do was go to the debian repos and find libicu52 and libicu52-dev and install them

openSUSE Tumbleweed: sudo find /opt/dotnet -name ‘*.so’ -type f -print | xargs ldd | grep ‘not found’ liblldb.so.3.5.0 => not found # liblldb.so.3.8 found libicuuc.so.53.1 => not found # libicuuc.so.57.1 found libicui18n.so.53.1 => not found # libicui18n.so.57.1 found liblttng-ust.so.0 => not found # not found

@cgountanis based on all the valuable info in this issue I managed to get dotnet running on openSUSE Tumbleweed 20160831 like so:

Install a old libicu 53.1 to $HOME/.icu53

wget http://download.opensuse.org/repositories/devel:/languages:/R:/released/openSUSE_Factory/x86_64/libicu53_1-53.1-70.1.x86_64.rpm
rpm2cpio libicu53_1-53.1-70.1.x86_64.rpm | cpio -idmv # unpack
mv usr/lib64 $HOME/.icu53

Install the data for the old libicu 53.1 to $HOME/.icu53-data

wget http://download.opensuse.org/repositories/devel:/languages:/R:/released/openSUSE_Factory/noarch/libicu53_1-ledata-53.1-70.1.noarch.rpm
rpm2cpio libicu53_1-ledata-53.1-70.1.noarch.rpm | cpio -idmv
mv usr/share/icu/53.1 $HOME/.icu53-data

Grab the updated CoreCLR packages mentioned above required for newer Linux kernels

wget  https://dotnet.myget.org/F/dotnet-core/api/v2/package/runtime.opensuse.13.2-x64.Microsoft.NETCore.Runtime.CoreCLR/1.0.4
unzip 1.0.4.zip
chmod u+r runtimes/opensuse.13.2-x64/native/*
cp runtimes/opensuse.13.2-x64/native/* $(dirname $(command -v dotnet))/shared/Microsoft.NETCore.App/1.0.0/

Call dotnet with the old icu plus its data and it should (hopefully) work

LD_LIBRARY_PATH="$HOME/.icu53" ICU_DATA="$HOME/.icu53-data" dotnet --version

for debian stretch users, there is more than just libicu52. I added this line to sources.list (/etc/apt/sources.list) deb http://ftp.de.debian.org/debian/ jessie main then : apt-get update finally: apt-get -t jessie install libicu52 apt-get install libssl1.0.0 in this point, the command by @icebreaker gives this output:

    root@yspdebian:~# find /opt/dotnet -name '*.so' -type f -print | xargs ldd | grep 'not found'`

    liblldb-3.6.so => not found

    liblttng-ust.so.0 => not found

finally, work is done by : apt-get install liblttng-ust0 and apt-get install liblldb-3.6

and now, i have this error:

ahmad@yspdebian:~/oldicu$ dotnet new
Welcome to .NET Core!
---------------------
Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.
Telemetry
--------------
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include commandline arguments. The data is collected by Microsoft and shared with the community.
You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell.
You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry.
Configuring...
-------------------
A command is running to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
Decompressing 100% 4369 ms
Expanding 0%Segmentation fault

version is:

ahmad@yspdebian:~/oldicu$ dotnet --version
1.0.0-preview2-003121

and

ahmad@yspdebian:~/oldicu$ dotnet --info
.NET Command Line Tools (1.0.0-preview2-003121)

Product Information:
 Version:            1.0.0-preview2-003121
 Commit SHA-1 hash:  1e9d529bc5

Runtime Environment:
 OS Name:     debian
 OS Version:  
 OS Platform: Linux
 RID:         debian.-x64

For Fedora you can copy necessary libs from: ftp://195.220.108.108/linux/centos/7.2.1511/os/x86_64/Packages/libicu-50.1.2-15.el7.x86_64.rpm package to your /lib/lib64

Is there a reason dotnet Core isn’t being built with the latest packages from Debian? libicu52 and liblldb-3.6, for example, are several generations behind. I don’t want to have to necro old packages just to get this to run.

–EDIT–

Everything works if you download it from the main github page here. It doesn’t work if you download it using the commands from the https://www.microsoft.com/net/core#linuxdebian website. Perhaps that should be updated?

I was able to dotnet new, restore, and run on OpenSUSE 42.1 by downloading and installing the dependency for libicu53_1: https://software.opensuse.org/package/libicu53_1-ledata (this just copies libicudt531.dat to/usr/share/icu/53.1), and using the technique mickaelistria described such that I can leave the default 52_1 install alone. Thanks mickaelistria!

BTW, Kernel v4.1.20-11-default

here are some specifics: OS is Fedora 24 with libunwind/libicu installed (f24 has icu at version 56.1 and libunwind at version 1.11). I’m getting above mentioned error. Downgrading to f23 libicu is not an option because of dependencies involved: qt5-qtbase, among others. No can do. So in the end, it seems dotnet requires a specific icu version, ie v52.

Have you installed dependent packages like icu and libunwind?

I’m currently struggling with a ICU installation, these libs are missing:

-       liblttng-ust.so.0 => not found
- 	libicuuc.so.50 => not found
- 	libicui18n.so.50 => not found
- 	libcrypto.so.10 => not found
- 	libssl.so.10 => not found
- 	liblldb.so => not found
- 	liblttng-ust.so.0 => not found
- 	libicuuc.so.50 => not found
- 	libicui18n.so.50 => not found
- 	liblldb.so => not found
- 	libcrypto.so.10 => not found
- 	libssl.so.10 => not found

And when I try to install any of them

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package liblttng-ust.so.0
E: Couldn't find any package by glob 'liblttng-ust.so.0'
E: Couldn't find any package by regex 'liblttng-ust.so.0'

Thanks @icebreaker

It appears I’m still missing libicu53 (seems unavailable for Leap, though I have libicu52) and liblldb.so.3.5.0 (I have 3.7.0 installed)

Are these particular versions required?