Dependency Heck

This commit is contained in:
Kenneth John Odle 2024-06-29 19:01:29 -04:00
parent 6ebb04b26d
commit 688854f7fb

View File

@ -265,7 +265,7 @@ Considering that my entire job exists to help keep the drug supply safe (well, t
\section{Tomorrow} \section{Tomorrow}
\chapter{Dependency Hell}\label{dephell} \chapter{Dependency Heck}\label{dephell}
\section{Multiple Paths to \textit{Almost} the Same Destination} \section{Multiple Paths to \textit{Almost} the Same Destination}
@ -307,6 +307,23 @@ Unfortunately that told me that this dependency was already installed. But it's
That updates the dependencies and also means that Okular will run. A quick check of \texttt{Help $\rightarrow$ About Okular} confirmed that I am on version 24.05.1 and that new documents are opening in tabs when I double click on them in the file manager. That updates the dependencies and also means that Okular will run. A quick check of \texttt{Help $\rightarrow$ About Okular} confirmed that I am on version 24.05.1 and that new documents are opening in tabs when I double click on them in the file manager.
\section{What Are Dependencies?}
This naturally leads us to the question—\textit{what is a dependency?}
I'm so glad you asked.
The short answer is that a dependency is a piece of software that another piece of software relies on to do something. Which leads us to another question—why doesn't the software in question contain all the code that it needs to have in order to operate? Why do we bother with dependencies?
The short answer is that a lot of different software packages all need to do the same thing. So rather than include that other thing in each software package, we bundle it into a \textit{library}—a bit of software that other software packages can rely upon if they need to. When they do that, this library is now a dependency. The software package in question can't run without it.
To make things even less clear, a dependency doesn't necessarily have to be a library. It could be something like a configuration file, a device driver, or a database.
This is where things get confusing when it comes to computers. Not all dependencies are libraries (some are other things, like I mentioned), but not all libraries are dependencies. They are only dependencies for a particular bit of software. You can have a library on your computer which isn't used by any particular software package, and thus it is not a dependency. You can also have a library which is used by software package Foo, and so it's a dependency of Foo, but it's not used by software package Bar, so it's not a dependency of Bar.
\section{Dependency Hell}
\section{What Probably Happened Here}
\chapter{Coda} \chapter{Coda}