有没有办法从现已失效的存储库中保存/备份先前使用 apt install 获取的包?

有没有办法从现已失效的存储库中保存/备份先前使用 apt install 获取的包?

不久前,我使用 PPA 安装了一个名为 Tvheadend 的电视服务器程序。安装说明和程序位于网站 tvheadend.org 上,但现在似乎已停止运行(大约三天前停止运行)。我对使用 apt 安装软件的不满之一是,您无法获得可以保留以备将来使用的压缩安装文件,就像在 Windows 或 MacOS 中一样。但我想知道的是,Ubuntu 是否真的将下载的软件包存储在系统的某个位置,以某种格式保存该软件包并将其保存到外部驱动器或网络共享,然后在稍后将其安装在运行 Ubuntu 的其他系统上,或者在进行 Ubuntu 主要版本升级后将其安装在同一个系统上?我真的很想能够备份这个程序,这样如果我想构建另一个服务器,我仍然可以安装它,但如果有办法做到这一点,我只是不知道。

如果没有办法,那就太糟糕了。我希望 Ubuntu 能让你下载某种安装包到磁盘,然后运行它进行安装,就像 Windows 和 MacOS 中的常态一样,尤其是当你必须使用 PPA 从非 Ubuntu 相关站点获取软件时。但如果有办法,有人能解释一下 Ubuntu 将这些包存储在哪里,以及我如何保存包以备将来使用吗?

编辑:该网站最终于周五下午晚些时候(美国时间)恢复运行,但还是感谢那些回复的人!

答案1

Ubuntu 是否真的将下载的软件包存储在系统上的某个位置,

是的。请参阅/var/cache/apt/archivesdeb您可以使用软件管理器或 dpkg 来安装它。

Tvheadend 项目源代码可以在这里找到这里不过,2 天前已经更新了。如果您愿意,您可以在 github 上创建自己的帐户并克隆该项目。

答案2

你通常安装的软件包是 .deb 文件,这些文件位于启动板上,可以作为

apt-get download your_package_name

这个问题中有完整描述

除此之外,还可以在以下位置找到已安装的软件包

/var/cache/apt/archive

但它不会给你带来太大的帮助,因为每个包都是根据特定版本的库进行编译/构建的。

因此,作为软件包的维护者,你必须创建同一代码的多个“变体” -以我的 PPA 为例。因此,如果库没有改变,那么将这些为 Ubuntu 20.04 制作的软件包安装在 21.10 中可能会成功,但您不能指望这一点。因此,“保存软件包以供日后使用”是徒劳的。

这就是“snap”的用武之地——snap 包提供了所需的所有库,并且实际上不依赖于任何外部库。缺点是代码冗余、性能缓慢,更不用说如果您选择了自己的主题,UI 的外观和感觉也会有所不同。

最后,可以使用正确的 Ubuntu 版本创建一个 LXC 容器(比 docker 更轻),在那里安装您的应用程序并共享您的本机 X-Server,并让该软件在此容器中运行。

答案3

您必须仔细遵循 TVHeadend 官方安装指南https://tvheadend.org/projects/tvheadend/wiki/AptRepositories

然后你就可以得到Launchpad PPA它提供了更新的 TVHeadend 实际版本。
此处适用于您的 Ubuntu 20.04 LTS 的最新软件包于 2022-01-13 01:50:21 UTC 发布,4.3.0~pre+202201122318-0~built202201130132~gitc7b713edb~ubuntu20.04.1 版本。

因此可以通过以下方式安装:

sudo apt-add-repository ppa:mamarley/tvheadend-git
sudo apt update
sudo apt install tvheadend

并且其软件包可以直接从发射台/var/cache/apt/archives安装后可在 找到,或者使用 手动下载到任何文件夹apt-get download tvheadend

相关内容