软件包实际上是如何通过 apt-get install 安装的?

软件包实际上是如何通过 apt-get install 安装的?

当使用该apt-get install方法将软件包安装到 ubuntu 上时,获取该软件包的源代码和从头开始构建它之间有什么根本区别吗?该apt-get install功能是否只是下载源代码并在您的机器上将其构建到指定的目录,还是幕后还有更多操作?

最后(也许这没有答案)一种方法比另一种更好吗?我在这里想问的是,自己从源代码构建是否有任何优势,还是让它自己apt-get做更好?

答案1

apt、yum、pacman、emerge 等包管理系统的优点包括:

  • 查询已安装或可用的软件包版本非常简单。
  • 彻底删除一个包很容易,确保其中的所有文件都消失。
  • 验证包文件的完整性很容易,因此您可以查看它是否已被损坏或篡改。
  • 通过安装新版本并删除所有旧版本文件,可以轻松升级软件包。这将确保不会留下旧软件包中的任何残留文件,以免造成混乱或破坏。
  • 很容易就能看到哪些包需要或者提供其他包所提供或需要的东西,因此,您可以确保拥有包正常运行所需的项目。
  • 安装或删除软件包组非常容易。
  • 在许多情况下,可以降级到软件包的先前版本,例如当新版本有错误时。

尽管它适用于 Fedora,但也请参阅:

https://fedoraproject.org/wiki/Package_management_system

从源代码安装可能有优势

  • 您可以自定义二进制文件(启用/禁用选项)
  • 存储库中提供了更多最新的软件包
  • 有时需要修复错误

但缺点是,当有新版本可用时,您必须手动更新软件包,并且您通常会失去支持。

在我看来,如果您希望编译所有或大部分软件包,我建议使用 Gentoo。

答案2

apt-get - 轻松获取是 APT 包处理实用程序 (CLI),后端到突触资质

apt-get方法从你的系统触发检查官方来源或存储库文件中列出的

etc/apt/sources.list

例如跑步时sudo apt-get update && sudo apt-get upgrade (我用的),运行类似

在此处输入图片描述

其中点火链接前面的(忽略)表示自上次访问该存储库以来没有发生任何变化,并且得到声明对源文件的检索,该文件声明了该存储库中新可用包的更改。

不 ,apt-get实用程序不下载源文件,而是下载.deb 软件包包装并发布官方 Ubuntu 软件包提供者已经测试过稳定与整合与您的系统。

apt-get 下载的软件包可以在

/var/cache/apt

你可以看到所有Updates.deb 软件包,你甚至可以通过访问这个来比较他们的版本精确更新包

据,直到...为止编译从源码包来看,对于 Ubuntu 12.04 来说这是不可取的,甚至不推荐,因为它是一个 LTS 版本,你可以在这里查看原因

从源代码编译还是从 .deb 包安装更好?

从源代码编译程序会加快我的操作系统速度吗?

从源代码安装的优点/缺点

更多参考资料:apt-get来源列表

答案3

如果从源代码构建,则包含的内容会更多。从源代码安装apt-get只会安装预构建的软件包。

至于哪个更好,这取决于你需要它做什么。我从来不需要从源代码编译,但我不会在我的 ubuntu 笔记本电脑上做任何非常广泛的事情。

答案4

我认为您可以使用 apt-get 来安装软件包源。

  1. 您需要激活源代码存储库

    打开 /etc/apt/sources.list 文件,您将看到注释掉的行(以 # 开头),上面有“source”。

    取消注释

  2. 安装所需程序的依赖项:

    sudo apt-get build-dep "program"

  3. 下载并编译你的程序:

    sudo apt-get -b source "program"

之后,您会在主目录中得到一个 .deb 包。

相关内容