1

Background

Debian testing (bullseye) kernel 5.9.0, KDE, calibre 5.5.0

Symptoms

Calibre does not start, not even its GUI appears. Console shows a Python-related error message about _Py_FatalErrorFunc.

likewise
  • 446
  • 4
  • 8

1 Answers1

1

The solution is to update Calibre to a version newer than in testing. There are two alternatives:

  1. As per Calibre author response to a user of Kali Linux, you could remove the Calibre shipped in your distribution and install directly from Calibre website. I did not follow this advice as I prefer to leverage Debian's packaging system as much as possible.
  2. Install an updated version from unstable or experimental Debian distributions

I took option 2. Mixing packages from various distributions is discouraged. Using anything from experimental is discouraged even more. But sometimes the program you've been running regularly fails and you need a fix quickly. I don't think falling back on option 1 is the best choice in the long run.

Debian package search showed that although Calibre is not available in experimental, a version slightly newer to mine exists in unstable (codenamed sid).

Add unstable as possible source of packages

Create a file

sudo nano /etc/apt/sources.list.d/unstable.list

and paste

deb http://deb.debian.org/debian unstable main contrib non-free

(optional) Add experimental as possible source of packages

Create a file

sudo nano /etc/apt/sources.list.d/experimental.list

and paste

deb http://deb.debian.org/debian experimental main contrib non-free

Update Calibre

Resynchronize package index

sudo apt-get update

then simulate what apt-get would do

sudo apt-get -st unstable install calibre

then, if you consider the extent of required updates safe, issue the command without s to do the actual update

sudo apt-get -t unstable install calibre

Once you're done, edit unstable.list and put # at the beginning of the entry to comment it out. Otherwise apt will take these unstable versions into account at next upgrade. Run sudo apt-get update to resynchronize package index again. Commenting out is not necessary for experimental because of apt's package prioritization default settings.

Although getting anything from experimental is not needed in this case, it may be useful in the future. For example, to get the latest nvidia-driver package, you'd use sudo apt-get -t experimental install nvidia-driver.

The t option tells apt to temporarily prioritize (for this call only) package versions from the given release. Experimental is not a full distribution, it is an extension of unstable.

likewise
  • 446
  • 4
  • 8
  • For this particular case, where installing a couple packages (calibre and calibre-bin) is enough and you did the work to find out Sid's packages work, I'd rather download the packages directly: https://packages.debian.org/sid/all/calibre/download, https://packages.debian.org/sid/calibre-bin (on the second link, per-architecture package downloads are at the bottom) – outlyer Dec 02 '20 at 11:52