Centos常用包管理命令

搜索包

在用 yum 安装包之前,如果不确定要安装的包是什么,可以先去搜索一下。搜索可以判断你想安装的包,能不能通过 yum 去安装,如果没有找到结果,你可能要手工为系统去添加新的仓库,或者把包下载到本地,再用 rpm 去安装。

yum search 关键词

比如你要安装 Apache 这个 Web 服务器,可以搜索一下 apache 或者 httpd ,httpd 是包的名字,apache 这个词包含在包的介绍里。

yum search httpd

返回:

...
httpd.x86_64 : Apache HTTP Server
httpd-devel.i686 : Development interfaces for the Apache HTTP server
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
...

在搜索结果里,会包含找到的包的名字还有描述,被搜索的关键词会高亮显示。仔细看一下包的名字,然后再读一下描述,来判断这个包是不是自己想要的那个。注意包的名字里有一些特别的后缀,这些后缀表示的是包对硬件架构的最小需求。

  • x86_64:表示在 64 位架构上运行的包。
  • i686:一般表示 32 位的架构,常见的还有 .i386。
  • noarch:表示这个包不受架构的限制。

查看包

知道了自己想要的包以后,可以再查看一下这个包的具体的信息,比如版本号,尺寸,所属仓库,网址等等。

yum info 包的名字

比如查看一下要 httpd 这个包的信息:

yum info httpd

返回:

Available Packages
Name        : httpd
Arch        : x86_64
Version     : 2.2.15
Release     : 39.el6.centos
Size        : 825 k
Repo        : base
Summary     : Apache HTTP Server
URL         : http://httpd.apache.org/
License     : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
            : web server.

Arch 表示包需要的硬件架构,Repo 是这个包所属的 Repository 。

安装包

安装包用的是 yum install,yum 很多命令需要用到超级管理员的权限,所以你需要在命令的前面加上 sudo ,比如 sudo yum install … 或者先执行一下 su 这个命令。

su

在 su 命令后面没加任何选项,默认就是用 root 用户登录,会出现提示,让你输入密码,输入 root 用户的密码,然后回车,你现在的身份就变成 root 了。如果你用的是 vagrant ,默认 root 用户的密码是 vagrant 。

yum install 包的名字

比如去安装一下 httpd :

yum install httpd

返回:

Dependencies Resolved

===============================================================================
 Package                       Arch                   Version                  
===============================================================================
Installing:
 httpd                         x86_64                 2.2.15-39.el6.centos      
Installing for dependencies:
 apr                           x86_64                 1.3.9-5.el6_2             
 apr-util                      x86_64                 1.3.9-3.el6_0.1           
 apr-util-ldap                 x86_64                 1.3.9-3.el6_0.1           
 httpd-tools                   x86_64                 2.2.15-39.el6.centos      
 mailcap                       noarch                 2.1.31-2.el6              

Transaction Summary
================================================================================
Install       6 Package(s)

Total download size: 1.1 M
Installed size: 3.6 M
Is this ok [y/N]:

如果要安装的包需要一些依赖,会出现提示 Dependencies Resolved ,会列出你打算安装的包,这里就是 httpd ,下面是这个包需要安装的 dependencies,然后给你个总结,说要安装的包一共有多少个,大小是多小,安装后的尺寸。Is this ok [y/N],问你要继续吗?输入 y 表示同意,之后又会出现一次确定,再次输入 y 。你可以在执行命令的时候,加上一个 -y 参数(yum install httpd -y),这样出现这种确认的提示会自动填上 y ,不需要自己动手了。

列出包

list 这个命令可以列出仓库里的或者已经安装到系统上的包。

列出所有可用的包

yum list available

列出已经安装的包

yum list installed

在这些命令的后面可以加上 less ,这样可以分页显示:

yum list installed | less

也可以使用 grep ,找到包含特定字符的包,比如找出已经安装的名字里带 http 的包:

yum list installed | grep http

判断文件来自哪个包

用 provides 命令可以查看某个文件是来自哪个包。

yum provides 文件的路径

试一下:

yum provides /etc/httpd/conf/httpd.conf

返回:

httpd-2.2.15-39.el6.centos.x86_64 : Apache HTTP Server
Repo        : base
Matched from:
Filename    : /etc/httpd/conf/httpd.conf



httpd-2.2.15-39.el6.centos.x86_64 : Apache HTTP Server
Repo        : installed
Matched from:
Other       : Provides-match: /etc/httpd/conf/httpd.conf

上面显示 /etc/httpd/conf/httpd.conf 这个文件,属于 httpd-2.2.15-39.el6.centos.x86_64 这个包。

仓库

先查看一下系统里所有被启用的仓库列表:

yum repolist

返回:

repo id                                 repo name                                status
base                                    CentOS-6 - Base                          6,518
extras                                  CentOS-6 - Extras                        36
updates                                 CentOS-6 - Updates                       649
repolist: 7,203    

再去安装一个叫 epel( Extra Packages for Enterprise Linux ) 的仓库:

yum install epel-release

然后再用 yum repolist 查看一下系统上启动的仓库,你会看到刚才安装的 epel 仓库。用 yum list 命令查看所有的可用的包,会出现来自 epel 仓库的包,加上 grep 可以只显示 epel 这个仓库里的包。

yum list | grep epel

升级

升级用的是 update ,后面可以加上要升级的包的名字,不加的话,会去升级所有的包。

yum update

yum update 包的名字

删除包

移除不想要的包可以使用 remove 或者 erase,会把包还有可能的依赖删除掉。

yum remove 包的名字

比如:

yum remove httpd -y

加上 -y 参数,不需要手工确认了。

rpm

有些包你可能想先下载到本地,然后再去安装,这样就可以使用 rpm 这个工具。

安装下载到本地的包

rpm -ivh 包文件的路径

检查包是不是已经安装了

rpm -q 包名字

查看包

rpm -qi package_file

检查文件属于哪个包

rpm -qf 文件的路径

更新安装的包

rpm -Uvh 包文件

移除安装的包

rpm -e 包的名字

显示安装在系统上的包

rpm -qa | less
本站总访问量