Does anyone else have a "todo" list that turns into a rolling failure pile? Because a "todo" list is eventually going to accumulate certain types of items. These items are complex, multi-stepped, ambiguous, difficult, and their success or failure have lots of implications. Let's look at a concrete example. I have had, on my todo list, a rolling item for a long time now, maybe six months. I can't get it done, and I can't break it into discrete steps. It appears like this:
_ uninstall realtime kernel
It just rolls from day to day, along with things like "_ get a job" or "_ lose weight." There's no real way to break these things down into discrete steps because "step one" would be something like, "_ overcome overwhelming existential dread and fear" and step two would be, "_ press button." And all these things trigger a cascade of anxiety in my mind, which lead to me looking out helplessly over a wreck half-undone and three-quarters-not-started "projects." But I will try to elucidate "_ uninstall realtime kernel" and why something so seemingly simple is heart attack inducing.
I got this machine seven years ago with ONE idea in my mind. I would use to make multi-track recordings. I would generate "click tracks." Then I would listen to the click track while recording another track. It's pretty simple. That's what I wanted to do. And I have NEVER been able to get it to work. Not for a day, not for an hour. There have been countless positive leads, almost-works, nearly-theres, I think I can I think I can, I KNOW I CAN I KNOW I CAN, and... I can't. But... I THINK I CAN.
One of these missteps was the installation of a "realtime kernel." And I think the realtime kernel is fucking everything else up. But there is no real easy way to uninstall a kernel. Well... there is, sort of, but not, but yes, but this other thing, but if I do it, I could screw up this, or that, or that thing, or maybe I should. Should I? Shouldn't I? I don't know. Maybe? Ehh? What if... and so on and so on and so on. And I am not just typing a random pastiche of thoughts. There are things behind ALL of those. And ALL of the things behind all of those sentiments lead to their own rabbit holes of similar thoughts.
Then I start thinking about other things. And those things are their own endless labyrinths of maybes, possibly, might, kinda, ehh..., I don't know, NO!, maybe sorta...
_ uninstall realtime kernel
_ uninstall old kernels
There. There is a possible, discrete, first step. What is involved in uninstalling old kernels. I think I have a list of steps somewhere that I have worked out...
dpkg -l | fgrep linux-image- > image_list
# lists all the kernels (fgrep not necessary, grep works)
# lists the kernel currently running
sudo apt-get purge
# zotz all the packages you want to zotz
sudo apt-get autoremove
# Zotz dependencies that are no longer required
# So it doesn't go looking for shit that ain't there. I think this runs automatically.
sudo purge-old-kernels --keep 3
That's something I should do today. It doesn't really help, actually. I will get the list down to two kernels one is the generic kernel and the other is the realtime kernel. The final step SHOULD be to simply eliminate the realtime kernel while the computer is up and running in the generic kernel. But the Linux world is FILLED to the brim with situations like this... That SEEMS like the obvious thing to do. But no one would ever say to DO IT or NOT TO DO IT. If you ask, "Should I do this?" People say, "That's one way to do it..." and then go off on a rant about something that has nothing to do with what you are trying to do. If you do it, and then there are problems, people say, "You should never have done that!" Why didn't you do this or that or the other thing?
And Linux (really, all computer systems) has all these commands that are mixed bags. In one mode they do what they do, and in another mode they just give information. So something like:
killallhumans -hair=blonde -eyes=blue
Is a nice straightforward tool that kills all blonde-haired, blue-eyed humans. But if you just want to list all these humans you would do something like:
killallhumans -l -hair=blonde -eyes=blue
See the little -l? That makes a BIG DIFFERENCE. The -l means "just LIST all the blonde-haired, blue-eyed humans." And then there can be other switches that make a big difference.
killallhumans -v -hair=blonde -eyes=blue
That might mean kill all humans who aren't blonde-haired and blue-eyed. It's a lot of punch to pack into a single little -v. You don't want to mistype that. And why is it -v? I don't know, look in the manpages.
The Linux world is filled with these little tools that can deal out big damage depending on what swtiches you put on the command line, or what you forget. And there is no way to distinguish between "exploratory" programs and "execution" programs. Often the difference is just a little doo-dad switch, usually a -i, -v, -l or something like that. Sometimes it's a horrible combo like: --info=list or --list=info or --list=all.
Anyway, I am going to go delete a bunch of old kernels now.