从源代码编译程序

从源代码编译程序

我有一个关于软件包和在 Ubuntu 中构建程序的可能性的基本问题。具体来说:我正在使用Ubuntu 18.04.6 LTS. 假设我想从源代码构建 Okular 以获得最新功能 [okular 来自源]。关于此主题有一些相关问题,请参阅问题 1第二季度,但我想知道的是:当开始下载所需的依赖项时(例如我需要cmake_3.18.4-2_amd64.deb,这需要libarchive13_3.4.3-2+b1_amd64.deb等等……)我如何检查在某个时候我是否需要更新的内核?因为这将是最终的结果,对吧(因为此时我应该直接安装一个永不操作系统)?我不确定在哪个方面可以apt完成这项工作。apt的输出

 ...
     cmake : Depends: libarchive13 (>= 3.3.3) but 3.2.2-3.1ubuntu0.7 is to be installed
     Depends: libgcc-s1 (>= 3.0) but it is not installable
     Depends: libjsoncpp24 (>= 1.9.4) but it is not installable
     Depends: libstdc++6 (>= 9) but 8.4.0-1ubuntu1~18.04 is to be installed

 ...

意思是说安装所有需要的依赖项以成功是毫无希望的?我并不害怕做很多工作,但我想提前知道是否浪费时间自己构建包。这里最好的程序是什么(除了系统更新)?

答案1

由于依赖关系,您无法在不太旧的系统上编译非常新的软件。在旧系统上手动安装新的依赖关系会破坏它。

作为无害的替代品,你可以使用KDE 的 Okular 21.08.2 flatpak在你的 Ubuntu 18.04 LTS 上。使用以下命令安装:

sudo add-apt-repository ppa:flatpak/stable
sudo apt update
sudo apt install flatpak

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

flatpak install flathub org.kde.okular

并启动它使用

flatpak run org.kde.okular

或者在您的桌面环境中找到相关图标。

答案2

KDE 已经使用 Okular Snap 解决了这个问题。

https://snapcraft.io/okular

Snap 与系统的其余部分隔离开来,每当作者(KDE)推送更新时,它都会自动更新。

当前的 snap(版本 20.12.3)应该与您的 18.04 系统完全兼容。

  • 更多信息:snap list okular
  • 安装:sudo snap install okular
  • 它独立于 Ubuntu(或 Debian)版本。如果你发现 snap 版本过时了,只需直接 ping KDE 即可——他们是作者,他们可以随时更新它。

相关内容