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


29

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

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

Answers:


25

软件包管理系统(例如apt,yum,pacman,emerge等)的优点包括:

  • 查询软件包的哪个版本已安装或可用很容易。
  • 完全删除软件包很容易,确保所有文件都消失了。
  • 验证软件包文件的完整性很容易,因此您可以查看它是否已损坏或被篡改。
  • 通过安装新版本并删除所有旧版本文件,可以轻松升级软件包。这样可以确保不要遗留旧软件包中的任何残留文件来混淆或破坏事情。
  • 很容易看出哪些软件包需要或提供其他软件包所提供或需要的东西,因此您可以确保拥有使软件包正确运行所需的物品。
  • 安装或删除软件包组很容易。
  • 在许多情况下,有可能降级到软件包的先前版本,例如,当新版本存在错误时。

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

https://fedoraproject.org/wiki/Package_management_system

从源代码安装可能有优势

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

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

IMO如果您希望编译所有或大多数软件包,我会建议Gentoo。


1
为了澄清这个很好的答案,如果您自己编译,Update Manager将不知道,因此在发布更新时不会为您更新应用程序。此外,apt(Ubuntu选择的软件包管理器)不会编译;它下载现成的已编译二进制文件。最后,在安装或删除程序时,apt会自动维护您的菜单系统。手动编译时,您必须自己执行。
帕迪·兰道

1
自己编译软件包的另一个通常的小好处是,他们将在对您的确切硬件有更多了解的情况下进行编译,并且运行速度可能更快。如果您采用这种方式,请考虑使用checkinstall。 asic-linux.com.mx/~izto/checkinstall 它会跟踪已安装的内容,并在以后必要时帮助彻底删除它。

对于运行速度更快的部分,我立场正确。

18

Apt-get是APT软件包处理实用程序(CLI),后端是SynapticAptitude

apt-get的从你的系统检查触发法官方消息或资料库文件中列出

etc/apt/sources.list

例如。在运行(我使用)时,运行类似sudo apt-get update && sudo apt-get upgrade

在此处输入图片说明

其中,在链接前面的Ign(忽略)表示自上次访问该存储库以来未进行任何更改,而Get表示对Sources文件的检索说明了该存储库中新可用软件包的更改。

不,apt-get实用工具不会下载源文件,而是下载经过官方Ubuntu打包程序打包和发布的.deb软件包,该软件包已经过系统稳定性和与系统集成的测试。

apt-get的下载包中可以找到

/var/cache/apt

您可以在其中看到所有Updatesas .deb软件包,甚至可以通过访问此Precise-updates软件包进行比较以交叉检查其版本。

至于从源代码包进行编译,建议不要使用Ubuntu 12.04,甚至不建议使用Ubuntu 12.04,因为它是LTS版本,您可以在此处查看原因

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

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

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

有关更多参考:apt-getsources.list


实际上,apt,get,aptitude和synaptic这3个程序是后端的dpkg
JavierLópez'12

1
Aptitudedpkg的前端。而dpkg可用作dpkg-debdpkg-query
atenz 2012年

2

如果您从源代码构建,则其中包含更多选项。从进行安装apt-get仅会安装一个预先构建的软件包。

至于哪个更好,则取决于您的需求。我从来不需要从源代码进行编译,但是我在ubuntu笔记本电脑上没有做任何非常广泛的事情。


因此,apt-get不会构建任何内容-本质上只是下载二进制文件吗?
mathematician1975

3
究竟。它正在为您的体系结构(amd64,i386,armel等)下载预构建的二进制文件。
tgm4883 2012年

2

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

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

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

    取消注释

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

    sudo apt-get build-dep "program"

  3. 下载并编译程序:

    sudo apt-get -b source "program"

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.