While trying to install 5.0 RC 2 on Ubuntu 20.10 I am running into this error. Can someone help me resolve this issue
I am following the steps mentioned in our release notes for this.
*** Unpacking dotnet-5.0.0-rc.2-deb.tar.gz ...
dotnet_packages/
dotnet_packages/dotnet-runtime-deps-5.0.0-rc.2.20475.5-x64.deb
dotnet_packages/dotnet-targeting-pack-5.0.0-rc.2.20475.5-x64.deb
dotnet_packages/dotnet-sdk-5.0.100-rc.2.20479.15-x64.deb
dotnet_packages/aspnetcore-targeting-pack-5.0.0-rc.2.20475.17.deb
dotnet_packages/dotnet-apphost-pack-5.0.0-rc.2.20475.5-x64.deb
dotnet_packages/dotnet-hostfxr-5.0.0-rc.2.20475.5-x64.deb
dotnet_packages/netstandard-targeting-pack-2.1_2.1.0-1_amd64.deb
dotnet_packages/dotnet-host-5.0.0-rc.2.20475.5-x64.deb
dotnet_packages/aspnetcore-runtime-5.0.0-rc.2.20475.17-x64.deb
dotnet_packages/dotnet-runtime-5.0.0-rc.2.20475.5-x64.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'aspnetcore-runtime-5.0' instead of '/root/dotnet_install/dotnet_packages/aspnetcore-runtime-5.0.0-rc.2.20475.17-x64.deb'
Note, selecting 'aspnetcore-targeting-pack-5.0' instead of '/root/dotnet_install/dotnet_packages/aspnetcore-targeting-pack-5.0.0-rc.2.20475.17.deb'
Note, selecting 'dotnet-apphost-pack-5.0' instead of '/root/dotnet_install/dotnet_packages/dotnet-apphost-pack-5.0.0-rc.2.20475.5-x64.deb'
Note, selecting 'dotnet-host' instead of '/root/dotnet_install/dotnet_packages/dotnet-host-5.0.0-rc.2.20475.5-x64.deb'
Note, selecting 'dotnet-hostfxr-5.0' instead of '/root/dotnet_install/dotnet_packages/dotnet-hostfxr-5.0.0-rc.2.20475.5-x64.deb'
Note, selecting 'dotnet-runtime-5.0' instead of '/root/dotnet_install/dotnet_packages/dotnet-runtime-5.0.0-rc.2.20475.5-x64.deb'
Note, selecting 'dotnet-runtime-deps-5.0' instead of '/root/dotnet_install/dotnet_packages/dotnet-runtime-deps-5.0.0-rc.2.20475.5-x64.deb'
Note, selecting 'dotnet-sdk-5.0' instead of '/root/dotnet_install/dotnet_packages/dotnet-sdk-5.0.100-rc.2.20479.15-x64.deb'
Note, selecting 'dotnet-targeting-pack-5.0' instead of '/root/dotnet_install/dotnet_packages/dotnet-targeting-pack-5.0.0-rc.2.20475.5-x64.deb'
Note, selecting 'netstandard-targeting-pack-2.1' instead of '/root/dotnet_install/dotnet_packages/netstandard-targeting-pack-2.1_2.1.0-1_amd64.deb'
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
dotnet-runtime-deps-5.0 : Depends: libicu but it is not installable or
libicu66 but it is not installable or
libicu65 but it is not installable or
libicu63 but it is not installable or
libicu60 but it is not installable or
libicu57 but it is not installable or
libicu55 but it is not installable or
libicu52 but it is not installable
E: Unable to correct problems, you have held broken packages.
This is an ordinary failure that is resolved by adding support for the distro. I imagine https://github.com/dotnet/core/issues/5017 tracks this? (But it's missing an explicit checkbox?)
Ubuntu 20.10 has libicu67.
/cc @NikolaMilosavljevic @dleeapho
Correct, the upshot is that we'll need updated runtime-deps for 2.1, 3.1 and 5.0.
.NET 5 can be install n 20.10 using the install script
For 2.1 and 3.1 installation, in order to satisfy deb package dependency, please run
wget http://archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu66_66.1-2ubuntu2_amd64.deb
dpkg -i libicu66_66.1-2ubuntu2_amd64.deb
.NET 5 can be install n 20.10 using the install script
Note that the install script has been changed to include the workaround of installing libicu66 from the downloaded deb. This means you may end up with both libicu66 and libicu67 installed on your machine. I don't think this makes .NET behave worse, but it may be unexpected and confusing if you go to clean up later.
I believe a cleaner workaround is to use equivs to make a "fake" libicu package to satisfy the bad dotnet-runtime-deps dependency. Then just make sure libicu67 is installed, and .NET will use that.
What should the messaging in the docs be related to this? Add section for 20.10 and note that the package manager is currently broken and to use the manual install and pre?post? running the script, get the dependency with
wget http://archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu66_66.1-2ubuntu2_amd64.deb
dpkg -i libicu66_66.1-2ubuntu2_amd64.deb
??
This is the expected behavior with the current delay-heavy release process (https://github.com/dotnet/runtime/issues/35672) so I don't think "broken" is the right word. Packages that support Ubuntu 20.10 are not available, but if you manually acquire that old libicu66 package, you can then use the .NET packages that support Ubuntu 20.04 on Ubuntu 20.10.
Using equivs takes more lines to do, but it means you don't end up potentially using an old version of ICU, or having two versions of ICU installed. It looks like this before or after setting up the Microsoft packages repo:
sudo apt install -y equivs \
&& echo "Package: libicu" > libicu \
&& equivs-build libicu \
&& sudo apt install -y ./libicu_1.0_all.deb libicu67
Then sudo apt-get install -y dotnet-sdk-3.1 works.
@rbhanda, @NikolaMilosavljevic, and @leecow should probably decide which workaround seems ok to put up as docs.
use the manual install and pre?post? running the script, get the dependency
With the manual install you don't need the out-of-distro libicu66 via wget, you can just use the distro-provided libicu67. This is part of normal dependency setup so I don't think it needs to be any more detailed than usual.
Package repo installs are better than manual installs, so it would be nice to see an official workaround letting you install from the repo rather than only pointing to manual. (If either of the workarounds seem acceptable to the folks I pinged.)
Fixed ? see https://github.com/dotnet/core/issues/5549#issuecomment-728362949
Not quite, only some versions. https://github.com/dotnet/core/issues/5017#issuecomment-729208437:
New packages were pushed for 5.0 and 3.1 to support Ubuntu 20.10, but not 2.1.
(
dotnet-sdk-2.1still fails to install becausedotnet-runtime-deps-2.1isn't compatible with Ubuntu 20.10. [...])
Most helpful comment
This is the expected behavior with the current delay-heavy release process (https://github.com/dotnet/runtime/issues/35672) so I don't think "broken" is the right word. Packages that support Ubuntu 20.10 are not available, but if you manually acquire that old
libicu66package, you can then use the .NET packages that support Ubuntu 20.04 on Ubuntu 20.10.Using
equivstakes more lines to do, but it means you don't end up potentially using an old version of ICU, or having two versions of ICU installed. It looks like this before or after setting up the Microsoft packages repo:Then
sudo apt-get install -y dotnet-sdk-3.1works.@rbhanda, @NikolaMilosavljevic, and @leecow should probably decide which workaround seems ok to put up as docs.