yum,apt-get,rpm,。/ configure && make install和有什么不一样?


126

我是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中安装程序的方法吗?

另外,yumvs 是什么up2date。我从来没有清楚区别。
乔什(Josh)

apt-get是Debian,真的不应该在CentOS显示....
凯尔东街

Answers:


114

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

  • ./configure &&进行安装

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

    make install步骤基本上只是将最终文件复制到您的系统中。许多源都有特殊的make uninstall规则来再次将其删除,但是这不能保证,并且仅在您具有已配置的源的情况下才起作用。同样,这并不能解决所需的依赖关系。

    通常,只有某个包可用的源代码,因此这是唯一的方法。另外,./configure通常会接受很多选项,使您可以定制包装。

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

  • RPM(Redhat软件包管理器)

    rpm在系统中安装已经配置和编译的软件,并且还附带了卸载程序以再次删除它。这些包必须由某人创建。这个人已经决定要包括哪些功能,以及如何将软件包最佳地集成到您的系统布局中。它还带有依赖性列表。

    由于那里的许多发行版都使用了rpm,因此您通常需要确保为您的发行版编写了该rpm,以便将安装路径,依赖项和其他内部维护工作很好地集成在一起。

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

  • 百胜

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

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

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

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


我几乎要说的话。添加了对debian等效项的提及,并修改了格式。
奎克吉x德

2
@quack:谢谢。但是,我们不能就apt-get这样保持沉默吗?还是仍然建议使用它?
本杰明·班尼尔

2
没错,才智可能是推荐的更好的选择;我包括易于得到,因为它被广泛提及,谁不知道读者性向可能听说过apt-get的
奎克吉x德

4
apt-get有什么问题?
递归

5
@recursive:有时apt-get没有记录自动依赖关系,而是在卸载后将它们留在后面,aptitude然后引入了适当的依赖关系跟踪。此外,它还提供了不能使用的一些附加功能apt-get。我不确定,但是我认为在某个时候apt-get以及aptitude在何处进行更新以使用提供许多该功能的相同的高级后端。
本杰明·班尼尔

5

Yum和RPM是同一件事,除了yum会自动从网上获取软件包并rpm -i一步安装(使用)。应尽可能使用它以简化更新。rpm仅在找不到包时使用yum,并且make仅在没有.rpm包或需要更改某些编译时选项时使用此方法。

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.