我对Linux系统很新。 我可以select安装一个软件( ImageMagick ),使用它的.rpm或编译.tar.gz( 我已经完成)的源代码。
我应该select哪一个(你会)?
如果我selectrpm,我应该使用rpm -Uvh <filename>还是使用yum来安装rpm?
如果我select安装二进制文件,安装(Apache / httpd使用)的常用方法是什么? 我想我应该下载.tar.gz文件到/usr/local/src ,用tar zxvf <filename>解压缩,然后./configure make install 。 一般情况下,如果我这样做,二进制文件会自动去/usr/bin (它为ImageMagick做),并为所有用户设置环境path?
我应该select哪一个(你会)?
使用RPM并坚持使用RPM。 RPM使用源代码要简单得多,更容易更新和安装安全更新,并且可以节省您的时间。 我可以在大约5分钟内更新CentOS盒子上的所有软件。 从源代码编译时,要花几个小时甚至几天的时间做同样的事情。
此外,由于您是Linux系统的新手,您将希望系统与社区其他部分的使用方式保持一致,因此文档和论坛post中的示例将与本地系统上提供的示例相匹配。 文档通常假定您通过RPM安装了软件。 如果你有一个由RPM构build的混合系统,但是从源代码安装了十几个程序,debugging将变得更加困难,并且需要更多的知识和技能。
从源代码编译更加复杂,需要您在编译期间解决依赖关系问题。 在编译软件之前,您需要在系统上安装头文件,编译器等依赖项,而这些通常都是通过RPM安装的。
但是,请注意,RHEL和CentOS通常坚持产品的一个主要版本(例如,CentOS5提供了PHP 5.3的RPM,但不会为5.4提供RPM)。 安全修复和一些function更改由RedHat'backported'到当前版本。
如果您想要从CentOS无法获得的特定版本的软件,或者您想自行定制源代码,请从源代码安装。 对于初学者,尽量避免这一点。
对于ImageMagick,安装CentOS提供的RPM。 如果它不能满足你的需求,那么研究你需要的版本,并从源代码安装它。
rpm -Uvh或使用yum
使用yum,这是一个包装RPM(RPM库),并为你做了很多工作。 再次,这将节省您的时间。
RPM用于从本地文件安装RPM,这意味着您将需要findRPM并下载它以及所有依赖项。 Yum将执行依赖性检查,并将为您下载并安装RPM。
二进制文件会自动转到/ usr / bin
当sourcecode将二进制文件放在/usr/local/bin而不是/usr/bin时,我更喜欢它。 /usr/bin用于供应商提供的软件,并且/usr/local/bin应该保留用于本地编译的软件包。 如果源代码将二进制文件安装到/usr/bin ,则意味着下次运行yum update --yes时,这些二进制文件可能会被意外replace。
另请参阅https://unix.stackexchange.com/questions/8656/usr-bin-vs-usr-local-bin-on-linux
还有其他一些可以从源代码编译所有软件的Unix变体,但是这些系统往往有很好的方法和好的工具来保持所有这些源文件的组织。 FreeBSD是一个stream行的操作系统,pipe理员倾向于从源代码包(称为“Ports”)编译软件,这是了解操作系统和源代码的好方法。
我尽可能地坚持分发包。 这往往是一种更一致的软件pipe理方法。 如果您发现作为RPM软件包不可用的项目,则可以从源代码tarball中构build自己的RPM。
如果您selectRPM,使用yum是从软件存储库中提取软件并通过RPM进行安装的一种手段。 RPM是实际的包pipe理器框架。