Something I have never understood about Linux is that if you're on lets say Arch, and you need to install a .deb package because there isn't a package for Arch, I don't know what you do. I'm not sure if its possible for you to install it, really complicated, not recommended, or not possible. Linux is Linux, x86 is x86. You should be able to run these packages interoperably, even if you have to install a few dependencies you wouldn't normally have to. Is this right?

Also, an equivalent to Window's PATH. When you type a command into the terminal, like "neofetch" how does the PC recognize that? What config file tells your OS to run neofetch, and tells it what file path it's in?

If you needed to "install" an application and be able to easily run it from the terminal by calling it's name (and not it's path) how would you do that?

Follow

@kira The system searches all folders specified in the environment variable PATH.

One notable difference from windows systems, which may be confusing when switching is that files are not organized by software but by type. If you install Firefox in windows you'll get a folder named Firefox somewhere in your system with all files associated to Firefox contained within. This does not happen in Linux (which may render the operation of finding all files associated to a software a bit more difficult) in Linux the files associated to Firefox are divided: all the executable files go together in a folder containing all the executable files of all the programs installed, all library files go together in a folder with all the library files installed by other programs and so on.

Generally, system wide executables are installed in 4 different locations:
/usr/bin
/usr/sbin
/usr/local/bin
/opt

/usr/bin is the standard place where software installed by your package manager goes, while /usr/local/bin is generally where you place stuff you manually install. These folders are included in PATH so that you can execute the software without writing the full name.
/usr/sbin contains executable files which are used for system administration and which require higher privileges to be executed.
/opt is generally empty and it's a convenience folder, it's generally used when you need for whatever reason to install software "windows style", people generally have folders here with the name of the software containing all associated documents and manually add the executable folder to their PATH variable.

Then we get to user stuff, if you're compiling software or installing something on a system where you don't have administrative privileges, you can install software locally.
In your home folder is contained a folder called .local generally people use this folder as a user owned /usr/ folder, thus you can create a bin folder in there, install your executables and add that folder to your PATH environment variable.

To add folders to your PATH environment variable, you would add a line to the file ~/.profile which is read when you login (you may have to logout to make changes effective)
Such as:
export PATH=$PATH:~/.local/bin

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.