In this video, we'll zoom into dependencies a little bit.
So what are dependencies? Well, dependencies are often libraries that provide common functionality to applications.
Other dependencies might exist as well.
Think about running a Python script. In order to run a Python script, Python needs to be installed.
Dependencies are always provided in independently managed packages, and that can make it quite
complex. But fortunately, the package managers like DNF and APT provide a solution.
Now, about these libraries. Libraries are very commonly used in Linux to make working with
software easier because they provide common functionality that may be used by multiple packages.
If you want to analyze network packages, for instance, there is the packet capture library libpcap. There's also libc,
which is a more common library. This is the C library that provides all the common functions in the
Linux operating system and you will see it as a dependency for all packages that you are using.
When you are installing software packages, libraries are installed as dependencies and the LDD
command can can be used to find out about libraries that are currently installed.
Now, while working with libraries, there is the issue of library versions.
You can only have one version of a library on a system.
So how are you going to do that if you want to run applications that
require different versions on the same system? Well, then you need to isolate the application.
And there are two ways that you can use isolation. Either you are going to run
your application as a container, which we'll talk about about in lesson 19, or you are
going to use an isolated application using Snap on Ubuntu or Flatpak on other distributions.
Let's have a quick look at these libraries before talking a bit more about package managers.
So I am going to use sudo ldd LDD is d command if you want to find out about libraries.
And I'm going to do that on the result of the command, which passwd Remember, if you put
a command like this between dollar and parentheses, you will work with the result of the command.
And what do we see? Well, we see all the libraries, including the C library libc
so 6, but also other libraries that define how this command is doing its work.
Like libpam, which is for pluggable authentication modules. That's a framework that is using authentication like
lib audit, which means that you can audit messages that are generated by this utility in
lib SELinux, because this is a red hat system where Selinux is used for more security.
Now the issue about these libraries is that they all need to be installed when
you install your packages. And in the next video you'll find out how that works.