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

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


yum install [program]
apt-get install [program]
rpm -i [program].rpm

wget [program].tar.gz-> unpack-> ./configure-> make-> make install


最后一个是一个真正的痛苦,尤其是来自Windows程序安装通常只需单击一下,即可获得一个不错的安装向导。

因此,我的问题是:为什么在Linux中有这么多不同的方法来执行此操作?
您建议使用哪种?为什么?
还有其他方法可以在Linux中安装程序吗?


评论

另外,yum vs up2date又如何呢?我从来没有清楚区别。

apt-get用于Debian,真的不应该出现在CentOS上。...

#1 楼

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



./configure && make install

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

make install步骤基本上只是将最终文件复制到系统中。许多来源都带有特殊的make uninstall规则来再次删除它们,但这不能保证,并且仅当您具有已配置的来源时,它才有效。另外,这并不能解决必需的依赖项。

通常只有某个软件包可用的源代码,因此这是唯一的方法。同样,./configure通常接受许多选项,可让您定制软件包。

无法找出安装了哪个文件的软件,并且缺乏可靠的方法从系统中删除它们。这种方法的缺点。


RPM(Redhat软件包管理器)

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

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

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


Yum

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

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

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

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

评论


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

–嘎嘎吉qua德
2010-3-31的3:15

@quack:谢谢。但是,我们难道不能都匆匆忙忙获得apt-get还是还是推荐它使用?

–本杰明·班尼尔(Benjamin Bannier)
2010-3-31的3:23

没错,才智可能是推荐的更好的选择;我之所以包含apt-get,是因为它得到了广泛的关注,并且不了解智能的读者可能听说过apt-get。

–嘎嘎吉qua德
2010-3-31的3:25

apt-get有什么问题?

–递归
13年1月14日在16:26

@recursive:有时apt-get不会记录自动依赖关系,而是在卸载后将它们留在后面,而aptitude则引入了适当的依赖关系跟踪。此外,它还提供了apt-get中不可用的一些其他功能。我不确定,但是我认为在某些时候apt-get和aptitude会更新为使用提供许多功能的相同高级后端。

–本杰明·班尼尔(Benjamin Bannier)
2013年1月14日18:36



#2 楼

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