Providing utility package bundles

As we all know, Linux is not perfect and often requires users to get their hands dirty and dig in manually for debugging. And on no Linux distro I have ever used has this been more painful than on nixos.

One of the reasons is nix being one of the more unusual distros and this is kind of a fact of life that I can accept.

However what I do not think we need to accept is the lack of basic commands.

Whenever I want to debug anything on nixos I am always missing the commands to do so, because I do not have them installed.

Using busybox has made this issue slightly better, because it has - in theory - everything I should need to debug, however it creates new issues, as many commands end up not behaving as expected. The easiest example being: lsusb does not show device names.

And when I asked about this on the matrix, the response was: there would be no consensus about what to include and I am underestimating this communities ability yo bike-shed.

So I am making this thread because
a) I want to stop having to bother with commands constantly missing
b) I think it is possible to reach a consensus on this issue

My first suggestion is to create package-bundles by use-case and move the general discussion to be handled by the maintainers of those. When somebody thinks their favorite bundle is missing an important package or is having an unnecessary one, we can just discuss this on a bundle-to-bundle basis.

I think for instance someone trying to troubleshoot a laptop misbehaving will need different stuff than somebody trying to get a 3D printer to behave.

But let me ehar your thoghts on this.

I know there is coreurils, but that for isntance does not have lsusb or lspci

I can imagine this being a thing for nix-community. In my opinion, upstream should be an unopinionated toolbox. Anything else, from experience, is simply unproductive. You can’t please everyone, so there will be endless debates. And every new user-facing feature introduces (long-term) maintenance costs. I suggest making the core smaller, not larger, and building the cool shiny stuff on top rather than into it.

2 Likes

what is the indented user story for people finding these projects existing in nix-community? Would you be able to see that when looking for a command on search.nicos.org?

You are right about that.
However offloading these maintenance costs downstream can also be bad imho. And making users spend more time whenever they have to debug their device over not wanting to keep track of a curated list seems a bit off to me.

Probably the simplest answer to that is, that you collect everything you usually use to debug until you have everything in your personal preference installed.

Yes :slight_smile: For example alone for networking you would need: iproute2, tcpdump, traceroute, tracepath, mtr, iperf3 or do you? iperf3 is generally only used for benchmarking. mtr is just a nice frontend to ping and it is really just personal preference what do you use. Another one would be wavemon which is only useful on devices with wireless cards.

For example *top is also a nice personal preference category. htop? bmon? btop? bpytop? and there are probably many more tops.

You can also use neofetch/fastfetch for debugging but it is also mainly a tool to show off for screenshots.

Also ls*: lsusb, lshw, lscpu

Also do you need clinfo, glxinfo, something for vulkan? etc.

So you see, I only thought about this for not even 5 minutes and with no further input and already there are a gazillion questions.

If you know that the flake search is there, you can find it, but it is not a good starting point NixOS Search

You would probably need to write this into the installation instructions, that people choose something.

I don’t think the burden is high here. There are many ways to debug issues and many tools that can help you and most often the choice which to use comes down to personal preference and what you are comfortable with.


What I can suggest is comma , GitHub - nix-community/comma: Comma runs software without installing it. [maintainers=@Artturin,@burke,@DavHau]

That makes it really easy to just run a command once. In combination with GitHub - nix-community/nix-index-database: Weekly updated nix-index database [maintainer=@Mic92] really painless to set up.

4 Likes

Hm, coming from Arch, this has never even been as much of a gripe for me as it has on nixos.

And I am sorry, but I feel like this is a huge straw-men:

Of course I know there are many people with different preferences for what top to use. They can still entirely ignore this and go install their favorite tops and be fine.
Why would that mean we can’t throw in powertop in a laptop-utils pacakge?

This is not a suggestion for power-users, that are deliberate about every package they want to install. This is not me suggesting to force htop on every nixos install.

This is me asking for a lazy solution for a lazy user that just wants to follow basic trouble-shooting on linux forums and have everything they will probably need, so git, htop, lsusb and so on …