I feel my system is perpetually bloated, and try to maintain what applications I have installed but always seem to veer off into new applications or python modules and what ever else.
Just wondering how does one keep a lean daily use system?
Two answers:
- When you install it
- When you run out of system resources (disk, ram, cpu cycles, etc)
Bloated us a relative term. If it feels bloated then it is, if it doesn’t then it isn’t. The second you start noticing it is when you know you’ve gone too far for your own comfort and should start cleaning more aggressively. Compared to old computers even the cleanest modern linux setup is bloated by comparison in most cases.
Very true. I think its less noticing in my day to day but when I update there’s quite abit…
If you want to keep your main system lean, the best you can do is shove every project in a container or VM that way you can easily dispose of it, or at least know what’s for what.
Honestly, I embrace the bloat. Yes, my root partition is 50+GB big not even including
/var
. But none of it is really running or used. It’s a lot of disk space for stuff that gets used once in a blue moon.I could clean it all up, but I also don’t miss going dependency hunting whenever I want to use something from GitHub. As it is, I can pretty much git clone and play most repos and everything works out of the box. I have the toolchains for Python, Ruby, PHP, Go, NodeJS, Rust, D, C#, C/C++, Haskell, OCaml, Java, Android, Android NDK, and whatever other crap I can’t even think of. Wouldn’t be surprised if I have a Fortran or TurboPascal compiler laying around.
And that’s kind of a lot nicer than 50GB of extra space on one of my 3 ZFS pools. My system performs to my liking, shows no sign of slowdowns, and it handles basically everything I throw at it.
Being overly concerned with ‘bloat’ is a waste of time.
For python use
venv
.You can always
./configure && make
skippingmake install
and run programs from that directory and justrm -rf
the directory when you’re done.Containers also exist.
For advanced users
guix
makes it very easy to try out new software in an isolated environment.venv’s are bloat tbh
Considering venvs as bloat is being a bit harsh on yourself. True that venvs don’t try to share packages among themselves. But storage isn’t costly enough to justify the effort in saving there.
There are plenty of development tools that take up more than 5GB of space for no reason. Even there, the bloat comes from the network bandwidth needed to update them and the fact that they make it easy to hide malware. Hardly anything free software can be considered bloated on that account.
Linux is bloat. You should be entering your own minimal kernel in microcode via front panel switches at boot instead of being so wasteful. What do you think all that RAM and drive space is for? Holding data??
(Seriously, the modern minimalist thing is hilarious to me and I’ve been using computers since 16K of RAM was impressive…)
When I say bloat its less storage and more system updates
Same answer.
Not having multiple versions of a piece of software in the base system stack. if something is custom keep it isolated to be yeeted as needed
it’s bloated when there is useless stuff running most of the time, e.g. cups when you don’t even have a printer or steam all week when you only play every other weekend.
when software is sluggish to respond… like a modern browser with 100 heavy js tabs open. esp when it crashes or freezes.
otherwise… its hard to be unhappy with a simple self-configured WM(not a "batteries-included fancy DE). and preferably a very simple diy distro.difficulty in fixing problems is a more relevant issue.
You might like to use aconfmgr to track and prune your system state.
I find pacdef significantly faster than
aconfmgr
for tracking and pruning packages. Additionally, if you wish to use both tools, the aconfmgr wiki includes a helper function that enables you to ignore all packages. This setup allowspacdef
to manage the packages, whileaconfmgr
handles the configuration.
alias orphans='paru -Qtdq | paru -Rns - && pw-play --volume=0.2 "/usr/share/sounds/freedesktop/stereo/complete.oga" &!'
I occasionally run this after a
pacman -Q | nvim
and looking through for any garbage.
and then a
sudo pacdiff
to fix up old config files.but I do that like once a year or so. that’s all it really takes unless you’re constantly installing stuff.
i have a similar method of manual review
installed() { pacman -Qs "$1" | awk -F/ '/^local/ {print $2}' | cut -d' ' -f 1 }` basically gets all installed packages and displays only package name, i can then manually look through and remove stuff
If you’re not running your whole environment in RAM and writing the software you need in real-time in Assembly every time you boot your machine, your system looks like a whale corpse that washed up on the beach. I don’t even have a storage drive - don’t need it.