yum、apt-get、rpm、./configure && make install 有什么区别?

Sai*_*han 141 linux package-management yum rpm installation

我是 Linux 新手,正在运行 CentOS。我遇到过四种更新或安装软件的方法。

到目前为止,我已经看到:

  • yum install [program]
  • apt-get install [program]
  • rpm -i [program].rpm
  • wget [program].tar.gz-> unpack-> ./configure-> make->make install

最后一个是一个真正的痛苦,尤其是来自 Windows,在 Windows 中,程序安装通常只需单击一下,并且有一个不错的安装向导。

所以,我的问题是:

  • 为什么在 Linux 中有这么多不同的方法来做到这一点?
  • 您推荐使用哪一种,为什么?
  • 有没有其他方法可以在 Linux 中安装程序?

Ben*_*ier 125

这些工具都将软件安装到您的系统中,但在不同级别上运行。

  • ./configure && make install

    运行./configure && make install直接从源代码构建和安装库或可执行文件。

    make install步骤基本上只是将最终文件复制到您的系统中。许多来源都有一个特殊的make uninstall规则来再次删除它们,但这不能保证,当然只有在你有配置的来源时才有效。此外,这不会处理所需的依赖项。

    通常只有某个包的源代码可用,所以这是唯一的方法。此外,./configure通常接受许多选项,允许您定制您的包裹。

    无法找出哪个软件安装了哪个文件,以及缺乏将它们从系统中删除的可靠方法是这种方法的主要缺点。

  • RPM(红帽软件包管理器)

    rpm在您的系统中安装已经配置和编译的软件,它还附带卸载以再次摆脱它。包必须由某人创建。此人已经决定要包含哪些功能以及如何最好地将软件包集成到您的系统布局中。它还附带了一个依赖项列表。

    由于 rpm 用于那里的许多发行版,您通常需要确保此 rpm 是为您的发行版编写的,以便安装路径、依赖项和其他内务管理的东西很好地集成。

    在 Debian 系统上,等效的包格式是.deb,安装和数据库由该dpkg工具处理。

  • 百胜

    yum是围绕rpm. 它保持自己的 rpm 文件数据库可用于您的发行版,通常在在线存储库中。对于大多数发行版的稳定版本,该数据库中的所有包都可以很好地相互配合。可以搜索该数据库(例如,使用yum search some_name)。

    它还会自动为您解决依赖关系。软件包(以及一些额外的帮助它们的依赖项)也可以轻松卸载。

    在 Debian 系统上,Apt (apt-getaptitude)提供了等效的存储库和依赖项解析工具。

总结一下:如果您只是想要一些软件,请先尝试yum。如果那里不可用,您可以尝试查找现有rpm包。如果没有或您有一些特殊要求,请从源代码构建。

  • @recursive:有时`apt-get` 没有记录自动依赖项,并在卸载后将它们留在后面,而`aptitude` 然后引入了适当的依赖项跟踪。此外,它还提供了一些 `apt-get` 中没有的附加功能。我不确定,但我认为在某些时候 `apt-get` 和 `aptitude` 更新为使用相同的高级后端,提供大部分功能。 (5认同)
  • apt-get 有什么问题? (4认同)
  • 你是对的,*aptitude* 可能是更好的推荐;我包括 *apt-get* 是因为它被广泛提及,不了解 *aptitude* 的读者可能听说过 *apt-get*。 (3认同)
  • @嘎嘎:谢谢。但是我们不能都对 `apt-get` 保持沉默,或者它仍然被推荐用于任何事情吗? (2认同)

mar*_*usw 6

Yum 和 RPM 是一回事,只是 yum 会自动从网上获取软件包并rpm -i一步安装(使用)。应尽可能使用它以简化更新。使用rpm仅当没有被发现包yum,并使用make方法只有当没有可用的.rpm包,或者您需要更改一些编译时的选项。