We do often include affiliate links to earn us some pennies. See more here.

After the issues that happened with Linus from Linus Tech Tips breaking Pop!_OS during the switch to Linux challenge, the APT package manager has been upgraded to prevent future issues happening.

We covered the problem in our previous article, where System76 were going to apply their own fix to prevent a dialogue appearing that allowed users to end up removing essential packages. At the same time, System76 were also talking with the APT team to get an official fix and one has now been created and released with APT 2.3.12.

The issue shouldn't have come up often, and was the result of the Steam package breaking, with APT in terminal mentioning lots of different things that could easily confuse users. To continue you needed to enter "Yes, do as I say!" to progress, which you should probably never do since the warning was there for a reason - essential packages being removed.


Picture Source: YouTube - oh dear.

Now, that option has been removed and APT will no longer have its solver attempt to remove essential or protected packages, so any dependency problem needs to be resolved manually. As a result your package won't install, remove or upgrade if there's conflicts but at least you have an actual working system. It can be overridden still but it won't tell you explicitly how to do so in the error messaging to prevent people just doing it anyway again.

Looks like Pop!_OS is already readying to bring in the changes. It's likely other distributions using APT will follow during their regular update patterns.

Article taken from GamingOnLinux.com.
Tags: Misc
25 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
The comments on this article are closed.
75 comments
Page: «3/8»
  Go to:

Philadelphus Nov 18, 2021
Quoting: soulsourceI consider catering to users who intentionally ignore critical warnings a step in the wrong direction.

I'm not trying to be elitist, but seriously, if there's a very clearly worded meessage telling the user that they are going to break their system, it's the user's fault if they type in "do as I say"...
Linus is the only one who can know his intentions. You and I can only guess. An honest mistake can't be ruled out, especially by someone knowledgeable enough in one domain (Windows) to critically overestimate his ability in another.

I'm reminded of Murphy's Law: "If there is a right way and a wrong way to do something, someone will inevitably do it the wrong way." Hence why eletrical sockets the world over have mechanisms to ensure that you can only plug a device in the correct way, rather than backwards which might fry your device or start a fire*. It sounds like you can still "plug things in backwards" with APT if you really want to, it's just removed the label on the plug telling you that's possible, which should stop a lot of people who otherwise wouldn't think to do it.

*And yes I know North American sockets can technically allow plugs to be flipped either way (because for some devices it doesn't matter), but that's both an exception to the rest of the world, and if the device really should be plugged in only one way there are two different physical mechanisms to enforce that. (Making one prong slightly larger, and using the third grounding prong.)
Rooster Nov 18, 2021
Quoting: AussieEeveebut you cannot expect that of a normal user

I saw quotes like this also in the previous thread on this topic: The normal user can't be expected to.. The regular user won't..

I thought about what the issue here is. If I'm using a CLI, it gives me a "wall of text" and I literally type in "Yes do as I say" without reading the text, then not putting the blame on me as a user is ridiculous isn't it? It should be clear, that this is 100% my fault, no matter what kind of user I am.. So how come so many people are defending this kind of behavior from a user?

And then it hit me. The "normal user" the "average user" should be in fact replaced with "normal Windows user" and "regular Windows user" and suddenly everything makes sense.

I'm on Linux now, so yeah.. Not only I read all Warnings and Errors, I actively look for them in the "wall of text". However, this is not the case when I use Windows. Because Windows encourages and trains its users to not read anything and just click Next, Next, or OK. And I have to admit, when I use Windows, I do this as well, because instead of simply doing the task I clearly asked it to do, Windows first gives you 1-3 windows asking if you really want to do this simple task.

I remember when I was phone navigating my ex, who have been a Windows user for most of her life, to change something in BIOS. During my instructions, a message popped up which I did not expect and she just automatically pressed Enter on it without reading it. In freaking BIOS!


So yeah.. While this isn't the case in this scenario, I don't think we should cater to dumb users, trying to protect the user from himself. Or we will end up training users to not read anything, just automatically press Next Next like on Windows.


Last edited by Rooster on 18 November 2021 at 5:56 pm UTC
slaapliedje Nov 18, 2021
Quoting: AussieEevee
Quoting: Guest
Quoting: AussieEevee
Quoting: slaapliedjeHe typed in the 'Yes I know what I'm doing' even though he clearly did not, and nuked Xorg while it was running. Not sure how that is any fault of apt.
He typed "yes, do as I say"... and the warning was hidden in a huge wall of text. It is absolutely apt's fault.

It was quite literally the line above telling him what to type. It wasn't hidden at all.



There's a screenshot of the error (From this very site)... It's one line in among a lot of white text that says you shouldn't do this. It is essentially hidden, and Linus is not to blame for this badly designed warning.

"You are about to do something potentially harmful" So that's not a big enough warning? How is that hidden? Right above that it says 194MB will be freed... pretty sure installing new software won't free disk space. All it would have taken him is two seconds to read that he was going to destroy something beautiful... like in Fight Club.
UltraAltesBrot Nov 18, 2021
Doesn't matter if the mistake was more on Linus or APT. The open software community, especially the APT team, reflected on the issue and reacted. If you think whether the change was necessary or not isn't important: In the end it just shows how flexible and responsive Linux and open source software development can be when issues arise - and that's a great outcome.
Beamboom Nov 18, 2021
This is just so stupid, I am so totally against this whole idea of declining the super user ANY action.

Linux is modular. To remove a graphical user interface can make PERFECT sense to do. The user might have several interfaces installed and decided to remove the one installed with the distro, or he wants to change the box into a non-gui server, or really whatever reason - let him do it.

The warnings issued in that screenshot should be PLENTY enough. For fucks sake, he were even forced to write a full sentence, after telling in CLEAR text what packages was about to be removed.

If the user can't handle THAT, he should bloody well just return to the land of "ignore-all-warnings", aka Windows.

EDIT: After I wrote this I realised that the packages can still be removed from the system it just needs to be done explicitly. That makes it slightly more acceptable. Still - I don't like that extra layer of "protection" to help people that can't bother reading or don't understand what's written in clear text infront of them.
If they are unable to comprehent text warnings - well then they WILL encounter a similar "crisis" later. Linux is built on the premise of giving the user the power and trust to decide.


Last edited by Beamboom on 19 November 2021 at 11:11 pm UTC
pleasereadthemanual Nov 18, 2021
This is a positive development. The old warning, while it should have been enough to indicate something was wrong, was vague. Passing a less verbose and clearer option is, in fact, better for people who know what they're doing because they don't need to type as much.

Linus Sebastian approached Linux under the assumption that it was polished, late at night, with limited time. What is more likely to a new user? For the first command you execute in a terminal, Apt forces you to type out a line of text that encourages you to read about what Apt is and how it's used, or that installing—for example—a browser will remove your desktop environment, display manager, display server, and graphical drivers? "Yes, do as I say" could very well be interpreted as meaning, "yes, I know how Apt works."

The new user is not keenly aware of the system. They do not know what xorg or gdm are, let alone what dependency entanglement is. The only frame of reference for what an operating system is for most people is macOS and Windows. And there is no scenario where installing something on those systems will uninstall any other program, let alone essential packages. Keep in mind that this is the first thing that Linus did upon installing Pop!_OS. This is not a gentle introduction.

I don't think it occurred to Linus that installing a new package without updating the local database could result in breakage, because this is not how installation works on any other system—on Windows and macOS (for the most part), packages are not dependent on each other, which means this situation is impossible on those systems to begin with. The solution to this problem was simply, "sudo apt update", but it's not something you know unless you're familiar with package managers on Linux already. The guide Linus followed also wasn't wrong, because graphical storefronts on Linux are notorious for being slow and buggy. This very well could have been the solution to another user's issue. Perhaps it was simply assumed knowledge that the user should execute "sudo apt update" first.

I find Apt hard to parse, especially after seeing how well-formatted Pacman is, so I don't tend to read much of the output, either. Some of the suggestions when discussing this issue on the tracker improved Apt's formatting, so the next time I use a Debian-based system, I'll hopefully have an easier time with it.

I have to disagree with Linus's comment that "the terminal is a crutch", simply because POSIX shells are the only part of Linux that is consistent across multiple different distributions..for the most part. Yes, more developers should develop graphical applications for Linux. No, there aren't enough developers interested in doing that, maintaining them, and many of them do not know what makes good UI.
t3g Nov 18, 2021
It is totally apt's fault and I'm surprised that the Debian devs still left that option to nuke your system so easily. I'm kinda glad this happened because it is a reality check for System76 that they need to be more careful with their releases.

I agree with others that apt should do an update before installing any packages.


Last edited by t3g on 18 November 2021 at 10:21 pm UTC
F.Ultra Nov 18, 2021
View PC info
  • Supporter
Is is just me that are worried that they have removed this in apt when LTT was using apt-get? Or do those two share codebase?

Anywho, I think that a much more important lesson to learn here for the distro devs are completely ignored. And that IMHO is that the Pop-Shop only told Linus that it refused to install Steam and not why and how to report it.

In the best of worlds (and this should be fixable) the GUI should first tell him that the
QuoteThere is a problem with the package where a needed dependency is not present, either this installation is in a broken state or there is a temporary problem with this specific package that we at Pop!_OS needs to fix.

Your list of packages have not been updated for quite a while and performing an update to possible get a newer version of said package could make the problem go away so should I update the list of packages for your now?

And there should also be a button in the GUI when this happens with "click here to report this as a problem on our GitHub or send a mail to this mail address if you don't have a github account".

Honestly I think that far too little time is spent on making these shops user friendly and they have just become some QD wrapper around apt/yum/pacman.

Another example is DistroTube testing out Ubuntu 21.10 and this happens: https://youtu.be/QsuI-nLqwhg?t=686 notice the insane error message that actually tells him that it refused to install it again since the installation is in progress but it's so obtusely written that DT doesn't see it, not to mention that the store doesn't put up any progress bar what so ever.

Or that the Gnome "Software" (great name guys) just shows an empy page with zero progress bar while it syncs the list of packages so it looks either empty or broken when used the first time.

THIS is the problem, not that LTT happened to hose his desktop due to a one in a million bug.
denyasis Nov 18, 2021
We all also have to remember that while the package manager (whichever you use) is an integral and important part of daily Linux use, there is no real equivalent in Windows.

Even the most basic concepts like the fact the OS is "modular" with dependencies and conflicts to packages all on the OS level is basically foreign.

Back to apt.... I figured I look at what we have to do if I really want to remove *that* package.
The change log in debian is not to helpful:

 
* Require argument to remove essential packages, do not prompt
  * Do not remove Essential/Protected due to dependencies.
    Thanks to Ariadne Conill for the inspiration


And from the diff, I assume you must set this argument to true:?

 
"APT::Get::Allow-Solver-Remove-Essential"


Sorry, I can't program and C is way beyond my ability to read, but I'm assuming we can just pass that with the rest of our arguments when we run apt ( or maybe set it in a conf file).

Come to think of it, could be good if you want to ensure *that* special package stays no matter what. I'm struggling to think of an example here though.
metalinux Nov 19, 2021
I politely disagree with the APT developers on this change. In my opinion, a new user to Linux coming from Windows wouldn't be in the terminal in the first place and even if they do have to use the terminal for something, the warnings in the output clearly stated:

WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!


Then at the bottom of the output:

You are about to do something potentially harmful.


With the user having to type "Yes, do as I say", so even accidentally entering the "Y" key will not execute the command.

Therefore, APT has done everything it can to inform the user that a major change will occur in their system. The impetus is now on the user. Like with anything in life, you should read and understand something to the best of your ability before accepting the terms and conditions.

I think the focus should be on guiding a new user to the appropriate documentation/resources, so they can learn why if they enter "Yes, do as I say", it could break their system.

Regardless of size, making changes to the wider ecosystem of Linux due to any YouTuber or "influencer" reaction, is not the direction we want to be going in. I hope this change by the APT devs can be reverted, but the decision is ultimately theirs of course.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.