Package selection questions

Danbor

Active Member
Joined
Aug 1, 2023
Messages
165
Reaction score
83
Credits
1,776
Recently, using VirtualBox 7.0.20, I created two Arch Linux machines. One running Mate, the other Cinnamon. Just to get more comfortable with the general flow of the Linux operating system. I used the archinstall method for both. ( Is the archinstall program an example of a shell script ). Anyway.
After a few stabs at it, the installs went well. I learned to install yay and brave browser and a couple other programs. While trying to test a device connected via usb, I ran into an issue that I did not expect. I entered the command lsusb and was informed that that command couldn't be found. Research taught me that that command had to be installed.
So, my question is, Can someone point me to a source to find a package that supplies the bash "command set" installed with Debian and Ubuntu builds?
I had no idea that the command set used to control the lowest level of the operating system varied across distros. Learning every day! D:
 


Recently, using VirtualBox 7.0.20, I created two Arch Linux machines. One running Mate, the other Cinnamon. Just to get more comfortable with the general flow of the Linux operating system. I used the archinstall method for both. ( Is the archinstall program an example of a shell script ). Anyway.
After a few stabs at it, the installs went well. I learned to install yay and brave browser and a couple other programs. While trying to test a device connected via usb, I ran into an issue that I did not expect. I entered the command lsusb and was informed that that command couldn't be found. Research taught me that that command had to be installed.
So, my question is, Can someone point me to a source to find a package that supplies the bash "command set" installed with Debian and Ubuntu builds?
I had no idea that the command set used to control the lowest level of the operating system varied across distros. Learning every day! D:
In debian the lsusb command is in the package: usbutils
Code:
$ dpkg -S /usr/bin/lsusb
usbutils: /usr/bin/lsusb
 
Thanks osprey. I now have usbutils installed in both Arch machines. But that wasn't really what I was asking.
Apparently, I assumed that, whether I use Debian, Fedora, Arch, or any other distro, as long as it's a Linux based operating system, the available commands for the terminal were the same set. That is, the same command set is available to use as soon as the OS is installed as it's part of the system, no matter the distro.
For example, I've now rummaged around in Ubuntu systems. Ubuntu, Kubuntu, Mint, etc. I've also wandered around Fedora, Debian and now Arch.
In every case, as soon as I install the OS, I can boot up, and without installing anything else, open terminal and type commands such as ls, cp, mkdir, reboot, shutdown, etc. Now I have found that, while in all the others, lsusb works the same, in Arch, it isn't included in the command set.
So, my questions are, what other commands are missing from a basic Arch install that are included in all the others? And where do I find them?
Nowhere have I read anything about bash commands being separated into differing packages like this. I thought Bash was Bash. Period.
Does my question make sense? :)
 
Thanks osprey. I now have usbutils installed in both Arch machines. But that wasn't really what I was asking.
Apparently, I assumed that, whether I use Debian, Fedora, Arch, or any other distro, as long as it's a Linux based operating system, the available commands for the terminal were the same set. That is, the same command set is available to use as soon as the OS is installed as it's part of the system, no matter the distro.
For example, I've now rummaged around in Ubuntu systems. Ubuntu, Kubuntu, Mint, etc. I've also wandered around Fedora, Debian and now Arch.
In every case, as soon as I install the OS, I can boot up, and without installing anything else, open terminal and type commands such as ls, cp, mkdir, reboot, shutdown, etc. Now I have found that, while in all the others, lsusb works the same, in Arch, it isn't included in the command set.
So, my questions are, what other commands are missing from a basic Arch install that are included in all the others? And where do I find them?
Nowhere have I read anything about bash commands being separated into differing packages like this. I thought Bash was Bash. Period.
Does my question make sense? :)
Certainly your question makes sense to me. In the following, whether any light is thrown on the matter, you can say.

The idea of a "command set" is an interesting one. The reality is that different distros supply different packages which contain the commands, and since it's a matter of choice by the maintainers as to what goes into their distribution, it's really going to be a matter for the user to discover what's available. That being said, there are some "basic" packages which the major distros always tend to include by default.

One basic package is: coreutils, which includes over 100 executables. They can be viewed in a terminal with commands like:
Code:
apt-file list coreutils | sed -n '/\usr\/bin/p'

apt-file list coreutils | sed -n '/\usr\/sbin/p'
In this post the apt commands are being used for the debian based distros, so one may need to translate them into the equivalent commands for arch or fedora to see similar results in those distros.

Another commonly included package is util-linux, which includes over 45 executables that can be viewed with commands like:
Code:
apt-file list util-linux | sed -n '/\usr\/bin/p'

apt-file list util-linux | sed -n '/\usr\/sbin/p'

The use of the lexical item "util", is commonly used in the name of packages that contain "utilities", which refers basically to useful commands, or commands that can be usefully "utilised" in linux I guess. To see all the packages which includes such "utilisable" commands, one can run a command like the following, which will output a list of the packages with "util" in their name. Then one can inspect each package with a relevant command such as those above used for the coreutils and util-linux packages to view the executables they include :
Code:
apt list --installed | grep util

The selection of "util" packages in any distro's installation medium, will depend, as mentioned above, on the decisions of the maintainers. If a util package is not included, I guess it's assumed that it can be downloaded, such as the lsusb package mentioned in post #2, so that sort of covers the bases for the maintainers and absolves them to an extent of critiques.

There are other approaches to the above arrangement of utilities, one of which is used by the Alpine distro. Alpine uses a single executable called: busybox, which has about 308 commands all bunched into a single file. The executables included can be checked here:
https://busybox.net/downloads/BusyBox.html.
It's a distro designed to be small, but has the flexibility of being enlarged into a fully featured distro, or used for small embedded systems.

All in all, the "command set" chosen by the distro's maintainers will each have a justification which is often aired and discussed on the mailing lists of the respective distros which are usually available for users to view, as is normally the case in the free and open source world.

In relation to bash, briefly, it is its own package and is only one of a number of possible shells like csh, ksh, zsh etc. It's an executable which has the specific function of "sending" the user's requests of the other executables into the kernel's domain, or space, so that the kernel can execute a command's intention on the hardware, and return the result to the user. Without a shell, like bash, a user would have no functionality on the machine. So, all normal distros provide a shell of one sort or another.
 
Last edited:
Thanks for the input. Had I not ventured into installing Arch, I wouldn't have learned this.
Over the years, working in differing lines of work I have found that each one has it's own general vocabulary. And if you don't learn the vocabulary, it's harder to learn the job. The term "command set" I used comes from my work in a totally different field. In this area, command set is supplanted by util package. Good to know!
I believe part of my difficulty navigating the Arch wiki is that I have yet to learn the Linux vocabulary. Well, and having other vocabularies already floating around in my head. :)
Imagine the struggle I had when I aquired my first Amiga 500. At the time, I was an American GI, living in Germany with only a limited grasp of Bavarian German. I bought the Amiga from a German gentleman that worked for Seimens in some IT job. Though I knew conversational German, the Amiga OS was written in Hoch Deutch, ( high German ), same language but different. Not to mention the first computer I ever had that used a GUI. Fun times!
Anyway, can I assume that there are, generally speaking, util packages for working with various areas? a util package for usb things, one for working with storage media, one for sound, video, kernal, networks, human interface, etc.
Sometimes, multiples of these packages are bundled together into yet another package. In a manner of speaking, a Linux OS is, at it's core, a collection of packages bundled into one cohesive package?
Apologies for taking up your valuable time. Especially as I don't have any pressing need to understand all this other than a lifelong thirst for learning and a percieved need to keep my brain active and healthy for as long as possible.
 


Members online


Top