CentOS如何使用Yum管理包
每个Linux发行版都有一种管理软件包的方法。
除了从源编译它来安装软件外,Centos还使用两个包管理命令:低级RPM和高级yum命令。
yum个高级包管理器,它在后台使用RPM包管理工具。
在CentOS上使用YUM安装包
为了说明,让我们安装一个名为httpd的包,它是Apache Web服务器。
我们将使用yum安装httpd,如下所示:
yum install httpd
发出该命令后,大量文本通过,系统会提示我们按"Y"继续。
在完成之前,请查看上述文本:我们可以看到包名称,IT的架构,版本,存储库和大小。
此外,我们可以看到它是将五个其他包作为依赖项安装,总计6安装的包。
rpm vs yum:
当我们通过RPM安装包时,我们可能需要其他包。
这些称为依赖项。
它有时会导致依赖地狱,因为例如package_a具有称为package_b的依赖项,而且包依次具有package_b作为依赖关系。
package_c可以使我们猜测,package_d作为依赖项等。
所以我们不需要下载package_a,但也需要package_b,package_c等。
某些包可能需要多达100个依赖项。
额外问题是我们需要安装依赖于人类包的依赖项包的确切版本。
Yum照顾所有这些。
按Y,再次按下,结束。
安装完成
一个有用的提示:如果我们确定我们正在进行的内容,那么我们可以通过使用-y切换到yum命令自动接受所有内容。
例如:
yum -y install httpd
存储库
存储库是Internet上的位置,其中存储了所有包。
这些显然在某处配置。
在CentOS中,存储库存储为/etc/yum.repos.d文件夹中的文件。
我们可以看看它的内容。
/etc/yum.repos.d/ CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Vault.repo
在我们安装最少的CentOS时,已经在某些内部的存储库(或者"repos"),该文件定义为与.Repo结尾的文件。
在CentOS 6中,我们不需要使用yum管理包来下载RPM包,因为它可在默认存储库中使用。
所以让我们试着通过yum安装它。
例子:
yum -y install epel-release
现在让我们再次查看/etc/yum.repos.d/的内容。
ls /etc/yum.repos.d/ CentOS-Base.repo CentOS-Debuginfo.repo CentOS-fasttrack.repo CentOS-Media.repo CentOS-Vault.repo epel.repo epel-testing.repo
我们可以看到新的文件epel.repo和epel-testing.repo。
它们定义了与CentOS,Redhat,Scientific Linux和少数Redhat克莱隆的额外包装的存储库。
甚至有一种方法来显示所有Repos和许多包,它们包含一个yum命令,yum drevolist。
yum repolist Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: centos.t-2.net * epel: mirrors.netix.net * extras: centos.t-2.net * updates: centos.t-2.net repo id repo name status base CentOS-6 - Base 6,713 epel Extra Packages for Enterprise Linux 6 - x86_64 12,506 extras CentOS-6 - Extras 43 updates CentOS-6 - Updates 319 repolist: 19,581
我们可以在此处查看EPEL存储库包含惊人的12,514软件包。
列出已安装的软件包
我在CHM文章中向我们展示了如何列出已安装的软件包,具有RPM -QA。
我们还可以使用List安装选项列出这些yum。
yum list installed
列出已安装的软件包
其输出比通过RPM命令获得的输出不同。
由我们决定使用哪一个。
删除软件包
删除包很容易,只需在使用yum时使用擦除选项,然后使用包名称。
yum erase -y epel-release
类似于RPM,我们不必指定包的版本,只是包的名称。
让我们再次安装它,因为我们将在文章中再次需要它。
yum -y install epel-release
搜索软件包
我们可以使用搜索选项搜索已安装的存储库中的软件包,然后是模式。
它将仅搜索包名称和摘要,但如果没有匹配项,它将在描述和URL中搜索。
例如,要搜索具有httpd在其名称/摘要/描述/url中的包,我们应该执行:
yum search httpd
很多包都会显示其中一些没有httpd在包名中。
相反,我们将在描述中看到它,例如mod_auth_mellon。
使用yum搜索httpd
我们可能已经注意到搜索是不区分大小写的,因此我们不必担心我们是否正在寻找httpd,httpdor httpd。
检索包信息
在安装之前,我们可以通过使用yum search后跟包名来获得有关某个包的更多信息。
让我们尝试用httpd包。
yum info httpd
此显示各种信息:其名称,架构,精确版本和释放,大小以及安装其所在的repo等事物。
它只显示有关完全称为httpd.since的包的信息,它可以生成多个结果,我们希望有关Startwithhttpd的所有包的信息,我们也可以使用疯狂的字符。
yum info httpd*