Added «dependency hell» chapter

This commit is contained in:
Kenneth John Odle 2024-06-27 16:24:15 -04:00
parent 49b1af4e99
commit 4680a37c65
5 changed files with 53 additions and 1 deletions

View File

@ -1,5 +1,6 @@
\documentclass[twoside]{report} \documentclass[twoside]{report}
\usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath} \usepackage{amsmath}
\usepackage{amssymb} \usepackage{amssymb}
\usepackage{makeidx} \usepackage{makeidx}
@ -190,7 +191,7 @@ If you want to donate financial support for the creation of this zine (and all t
\noindent \textbf{Credit where credit is due:} A lot of people have come forth (mostly from Reddit) to help me out in various ways. See the preamble to this document in the source code to see them. One aspect of our society is that nobody \textit{has} to help you. It is wonderful when it happens, and I am grateful for their help. \noindent \textbf{Credit where credit is due:} A lot of people have come forth (mostly from Reddit) to help me out in various ways. See the preamble to this document in the source code to see them. One aspect of our society is that nobody \textit{has} to help you. It is wonderful when it happens, and I am grateful for their help.
%\tableofcontents \tableofcontents
\chapter{The Salad Days Are Over} \chapter{The Salad Days Are Over}
@ -264,6 +265,45 @@ Considering that my entire job exists to help keep the drug supply safe (well, t
\section{Tomorrow} \section{Tomorrow}
\chapter{Dependency Hell}
I use Okular as a pdf viewer. Even though Ubuntu has a default pdf viewer, it doesn't have a lot of features and is unreliable in some ways. Okular has always been a better choice for me.
The problem is that there is no perfect way to install things in Linux. There are many different ways, and some ways are better than others. I had originally installed Okular from the GNOME Software. The version it installed was an older one though, and it would not update to a newer version that had a feature I wanted.\footnote{Specifically, the option to view bookmarks from a single pdf document, rather than all of them. I get why you \textit{sometimes} might want to view all the bookmarks to a single document, but it doesn't make sense to me to have that on all the time.}
I decided to uninstall that one and install it from Flatpak. This gave me the latest version (24.05.1) which did have this feature. The problem then became that Okular would not open new documents in tabs—it opened each one in a separate window, which I just find annoying. This works if you use \texttt{File $\rightarrow$ Open} to open your pdfs, but who does that? That's the point of a GUI—you can just double-click on files to open them.\footnote{As it turns out this is not so much an Okular issue as it is an ``Okular in Flatpak'' issue. See \kref{https://github.com/flathub/org.kde.okular/issues/36}{https://github.com/flathub/org.kde.okular/issues/36} and \kref{https://bugs.kde.org/show_bug.cgi?id=427653}{https://bugs.kde.org/show\_bug.cgi?id=427653} for more information.} So I uninstalled the Flatpak version until they get that bug fixed (although a bug report was filed for this issue in 2020, so it doesn't look like a priority).
I tried installing it directly through snap using this command:
\input{include/snapinstallokular}
\noindent{}and this \textit{did} give me the latest version. But it wouldn't open. I tried opening it from the command line and got this:
\begin{Verbatim}[breaklines=true]
/snap/okular/155/usr/bin/okular: error while loading shared libraries: libKF6Parts.so.6: cannot open shared object file: No such file or directory
\end{Verbatim}
This is, believe it or not, progress. What this is telling us is that Snap did not install all of the required dependencies, which in this case is \texttt{libKF6Pars.so.6}. So the issue now is: where can we can get that dependency from?
Time for some more command-line magic:
\input{include/sudofindsnap}
That gave me this information:
\begin{Verbatim}[]
/snap/kf6-core22/30/usr/lib/x86_64-linux-gnu/libKF6Parts.so.6
\end{Verbatim}
which tells us that this particular dependency is contained in \texttt{kf6-core22}. So to install that, we use:
\input{include/sudoinstallkf6}
Unfortunately that told me that this dependency was already installed. But it's probably not an updated version of it that will run with this newer, improved version of Okular. That's okay, we can fix that with
\input{include/snaprefresh}
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.
\chapter{Coda} \chapter{Coda}

View File

@ -0,0 +1,3 @@
\begin{Verbatim}[]
$ sudo snap install okular
\end{Verbatim}

View File

@ -0,0 +1,3 @@
\begin{Verbatim}[]
$ snap refresh
\end{Verbatim}

View File

@ -0,0 +1,3 @@
\begin{Verbatim}[]
$ sudo find /snap -name libKF6Parts.so.6
\end{Verbatim}

View File

@ -0,0 +1,3 @@
\begin{Verbatim}[]
$ snap install kf6-core22
\end{Verbatim}