我是 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 中安装程序吗?
答案1
这些工具都将软件安装到您的系统中,但是工作在不同的层面上。
./配置&&进行安装
运行
./configure && make install
直接从源代码构建并安装库或可执行文件。此
make install
步骤基本上只是将最终文件复制到您的系统中。许多源都带有特殊make uninstall
规则来再次删除它们,但这并不能保证,当然只有在您有配置的源的情况下才有效。此外,这不会处理所需的依赖项。通常只有特定软件包的源代码可用,所以这是唯一的方法。此外,
./configure
通常会接受许多选项,让您可以定制自己的软件包。无法找出哪个软件安装了哪个文件,以及缺乏可靠的方法将它们从系统中删除是这种方法的主要缺点。
每分钟转数(Redhat 软件包管理器)
rpm
在您的系统中安装已配置和编译的软件,并且还附带卸载程序以再次删除它。软件包必须由某人创建。此人已经决定要包含哪些功能以及如何最好地将软件包集成到您的系统布局中。它还附带一个依赖项列表。因为 rpm 被用于那里的许多发行版,所以您经常需要确保该 rpm 是为您的发行版编写的,以便安装路径、依赖项和其他常规事项能够很好地集成。
在 Debian 系统上,等效的包格式是,
.deb
并且安装和数据库由该工具处理dpkg
。百胜
yum
是 的附加包装器rpm
。它保存自己的 rpm 文件数据库,可用于您的发行版,通常位于在线存储库中。对于大多数发行版的稳定版本,该数据库中的所有软件包都可以很好地相互配合。可以搜索此数据库(例如使用yum search some_name
)。它还会自动为您解决依赖关系。软件包(以及借助一些额外帮助解决其依赖关系)也可以轻松卸载。
在 Debian 系统上,Apt(
apt-get
和aptitude
)提供了等效的存储库和依赖项解析工具。
总结一下:如果您只是想要一些软件,请先尝试yum
。如果那里没有,您可以尝试寻找现有的rpm
软件包。如果没有或您有特殊要求,请从源代码构建。
答案2
Yum 和 RPM 是相同的,只不过 yum 会自动从网上获取软件包并(使用rpm -i
)一步安装它们。应尽可能使用它来简化更新。rpm
仅在无法找到软件包时使用,并且仅在没有可用的 .rpm 软件包或您需要更改某些编译时选项时yum
使用该方法。make