- So software packages are a main thing in Linux.
What is a package?
Well a package basically is a tar ball
with something in addition.
And a something in addition is a script that copies files
to the right location and also a database that is useful
in the system to keep track of what is installed.
Packages are cool because packages make that you can easily
uninstall and update your information.
But packages typically focus on the software
that they want to install
and they use dependencies for related software packages.
These dependencies typically are libraries
which deliver essential components
needed for learning the software successfully.
But it also means that the dependency needs to be installed
before you can install the package.
And if you just have a package
and no real dependency handling,
well that can bring you into a real dependency hell.
I remember that once I tried to install a software package,
was a long time ago so I found a software package,
and I did my command to install the package
and it was complaining, oh I need these four dependencies.
So one hour later, I had downloaded the four dependencies
and started installing the first dependency,
it was complaining about 30 dependencies.
Do you think that I ever installed that software?
Answer should be obvious.
That is why software packages by themselves are not enough.
But they are still used and RPM is standard package format
in Red Hat, DEB is the standard package format in Ubuntu.
Let me do a quick demo about software packages.
All right, let me show you what a dependency problem
looks like.
I'm using LS to check out on the files that I've got
and this is file that we need, emacs auctex.
So I am going to sudo rpm minus ivh on emacs auctex.
This is how we would do it in the old days.
So I'm trying to install this package
and, oh no, we get an error failed dependencies.
This is what a dependency problem looks like,
this is what we call dependency hell.
The thing is, packages have dependencies,
and if you need to take care of these dependencies
all by yourself, that's kind of undoable.
And that is why we have software managers
or package managers or whatever you want to call them.
Like YUM, like DNF, like EPT,
you learn about them in one of the next videos.
But first in the next video we will talk about libraries.