搜索包
在用 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