dotnet / docs

This repository contains .NET Documentation.
https://learn.microsoft.com/dotnet
Creative Commons Attribution 4.0 International
4.29k stars 5.92k forks source link

Apt keeps uninstalling dotnet6 and your docs make NO MENTION of this insane behavior #31056

Closed archer884 closed 2 years ago

archer884 commented 2 years ago

What else can I say? I install dotnet6, I use it, and then I realize my discord installation stopped working. I install discord, I use that, and then I realize that dotnet6 stopped working... I have no idea what in the hell is going on but, the way your package works, it seems perfectly happy to remove the SDK and literally everything EXCEPT for the dotnet tool itself, which will then helpfully tell me that I have no SDKs the next time I try to compile something.

Well, I did have them, but they were marked as automatically installed and unused, and so apt very nicely deleted them the last time I installed anything!

No clue what's going on. Don't care. Tired of dealing with it. Your docs didn't help in the least.


Document Details

Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

adegeo commented 2 years ago

Hello, sorry this issue fell through the cracks and you've probably moved on...

My initial thought would be that there is some sort of dependency conflict between the two programs and perhaps each is stepping on the other? Did you contact Discord about the problem?

What specifically do you think needs to be mentioned in the docs? If the APT system isn't working well and uninstalling everything dotnet installed, I'm not seeing anything reported in the .NET product repo: https://github.com/dotnet/sdk/issues?q=is%3Aissue+uninstall+ubuntu+is%3Aopen

Other information is important, such as how were you installing .NET? Did you install just the SDK or did you install a runtime too? Did you upgrade different versions of .NET? Which version of Ubuntu are you working with?

archer884 commented 2 years ago

I've been installing the SDK via the following command:

❯ sudo apt install dotnet

I wasn't aware it was possible to install it WITHOUT a runtime. You can see the packages installed in the log below. (Of course, in that log they're being uninstalled.)

src/csharp/scratch via .NET v6.0.108 🎯 net6.0 
❯ sudo apt install discord
[sudo] password for archer: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  aspnetcore-targeting-pack-6.0 dotnet-apphost-pack-6.0 dotnet-host dotnet-hostfxr-6.0
  dotnet-targeting-pack-6.0 dotnet-templates-6.0 netstandard-targeting-pack-2.1
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  libc++1 libc++1-14 libc++abi1-14 libunwind-14
Suggested packages:
  clang
The following packages will be REMOVED:
  aspnetcore-runtime-6.0 dotnet-runtime-6.0 dotnet-sdk-6.0 dotnet6 libunwind-13
The following NEW packages will be installed:
  discord libc++1 libc++1-14 libc++abi1-14 libunwind-14
0 upgraded, 5 newly installed, 5 to remove and 0 not upgraded.
Need to get 77.5 MB of archives.
After this operation, 185 MB disk space will be freed.
Do you want to continue? [Y/n] y
Get:1 http://apt.pop-os.org/ubuntu jammy/main amd64 libunwind-14 amd64 1:14.0.0-1ubuntu1 [20.3 kB]
Get:2 http://apt.pop-os.org/ubuntu jammy/universe amd64 libc++abi1-14 amd64 1:14.0.0-1ubuntu1 [66.9 kB]
Get:3 http://apt.pop-os.org/ubuntu jammy/universe amd64 libc++1-14 amd64 1:14.0.0-1ubuntu1 [289 kB]
Get:4 http://apt.pop-os.org/ubuntu jammy/universe amd64 libc++1 amd64 1:14.0-55~exp2 [3,160 B]
Get:5 http://apt.pop-os.org/proprietary jammy/main amd64 discord amd64 0.0.19 [77.1 MB]
Fetched 77.5 MB in 2s (41.1 MB/s)   
(Reading database ... 330210 files and directories currently installed.)
Removing dotnet6 (6.0.108-0ubuntu1~22.04.1) ...
Removing dotnet-sdk-6.0 (6.0.108-0ubuntu1~22.04.1) ...
Removing aspnetcore-runtime-6.0 (6.0.108-0ubuntu1~22.04.1) ...
Removing dotnet-runtime-6.0 (6.0.108-0ubuntu1~22.04.1) ...
Removing libunwind-13:amd64 (1:13.0.1-2ubuntu2.1) ...
Selecting previously unselected package libunwind-14:amd64.
(Reading database ... 327715 files and directories currently installed.)
Preparing to unpack .../libunwind-14_1%3a14.0.0-1ubuntu1_amd64.deb ...
Unpacking libunwind-14:amd64 (1:14.0.0-1ubuntu1) ...
Selecting previously unselected package libc++abi1-14:amd64.
Preparing to unpack .../libc++abi1-14_1%3a14.0.0-1ubuntu1_amd64.deb ...
Unpacking libc++abi1-14:amd64 (1:14.0.0-1ubuntu1) ...
Selecting previously unselected package libc++1-14:amd64.
Preparing to unpack .../libc++1-14_1%3a14.0.0-1ubuntu1_amd64.deb ...
Unpacking libc++1-14:amd64 (1:14.0.0-1ubuntu1) ...
Selecting previously unselected package libc++1:amd64.
Preparing to unpack .../libc++1_1%3a14.0-55~exp2_amd64.deb ...
Unpacking libc++1:amd64 (1:14.0-55~exp2) ...
Selecting previously unselected package discord.
Preparing to unpack .../discord_0.0.19_amd64.deb ...
Unpacking discord (0.0.19) ...
Setting up libunwind-14:amd64 (1:14.0.0-1ubuntu1) ...
Setting up libc++abi1-14:amd64 (1:14.0.0-1ubuntu1) ...
Setting up libc++1-14:amd64 (1:14.0.0-1ubuntu1) ...
Setting up libc++1:amd64 (1:14.0-55~exp2) ...
Setting up discord (0.0.19) ...
17423
Processing triggers for gnome-menus (3.36.0-1ubuntu3) ...
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...
Processing triggers for desktop-file-utils (0.26-1ubuntu3) ...

src/csharp/scratch via .NET 🎯 net6.0 took 10s 
❯ dotnet run
The command could not be loaded, possibly because:
  * You intended to execute a .NET application:
      The application 'run' does not exist.
  * You intended to execute a .NET SDK command:
      No .NET SDKs were found.

Download a .NET SDK:
https://aka.ms/dotnet-download

Learn about SDK resolution:
https://aka.ms/dotnet/sdk-not-found

src/csharp/scratch via .NET 🎯 net6.0 
adegeo commented 2 years ago

You're getting your packages from http://apt.pop-os.org so I would take it up with them as they're the ones in charge of the feed + dependencies you're installing. If you're installing packages from multiple feeds, it's always possible you run into these weird dependency issues. I think that's just the nature of Linux. You'll need to work with the APT settings to pin packages and dependencies and prevent uninstall. Some options I can think of:

  1. Ask the pop-os folks for support.
  2. Prioritize Ubuntu's feed if it works on your derived distro, meaning, install both dotnet6 and discord from the official ubuntu feeds and not from pop-os' feeds.
  3. Install and use the Microsoft feed for dotnet, that might work.
  4. Try getting support on Stackoverflow to understand how to configure and prevent Linux from uninstalling dependencies: https://unix.stackexchange.com/questions/63826/how-to-stop-apt-from-uninstalling-the-packages-while-updating
  5. Try using the .NET manual install script to install the SDK instead of relying on the apt packages.
  6. Ask the .NET product team for support: https://github.com/dotnet/sdk/issues

Unfortunately, you're using a distro we don't support installing .NET via APT. I also don't have any experience with this distro so I can't really offer any help. The official recommendation for installing .NET on an unsupported Linux distro is to use the install script. (although I have seen some issues in the .NET product team repo related to pop os, so they may help you there)

I'm going to close this issue because there isn't anything we can do on the docs side for your issue. But please reply and let me know what you did and if you ever get it working, then I can at least guide anyone else in the future that runs into your same situation.

Sorry!