1.rpm :
rpm(RedHat Package Manager)是 RedHat 的软件包管理工具,由于CentOS 是基于 RedHat Linux的,所以 rpm 对于 CentOS 同样适用。下面列举了一些rpm 的常用参数:
[[email protected] ~]# rpm -ivh packagename.rpm //安装包
[[email protected] ~]# rpm -e packagename.rpm //卸载包
如果要卸载 vim-enhanced 包,使用如下命令:
[[email protected] ~]# rpm -e vim-enhanced
通过如下命令查看是否删除成功:
[[email protected] ~]# echo $?
该命令很常用,如果 $? 值为 0,则上一条命令执行成功;如果$? 值非0,则命令执行失败。
安装 / 卸载包时,经常会有各种互相依赖的关系,使用 --nodeps 可以忽略依赖关系,单独安装 / 卸载包:
[[email protected] ~]# rpm -e vim-enhanced --nodeps
[[email protected] ~]# rpm -Uvh packagename.rpm //更新包
查询系统安装的所有包:
[[email protected] ~]# rpm -qa
查询时,假如一个包的全名如下:
yum-plugin-versionlock-1.1.30-30.el6.noarch.rpm
则 yum-plugin-versionlock 为包名,1.1.30-30为版本号,el6 代表其为 RedHat 6 系统,noarck 代表该包在 32 位及 64 位操作系统下通用,如果仅适用于 32 位操作系统,则此位置一般为 i386、 i586、 i686 等,如果仅适用于 64位操作系统,则此位置一般为 ix86_x64 等形式(当然,由于操作系统的向下兼容性,适用于32 位的 rpm 包通常也能安装在 64 位操作系统上,反之则不然)。rpm 为 rpm 包通常的后缀名。
查询系统安装的所有包中名称包含vim 的包:
[[email protected] ~]# rpm -qa *vim*
上条命令与结合使用 grep 效果相同:
[[email protected] ~]# rpm -qa | grep “*vim”
查看安装一个包具体多出了哪些文件(此处包名必须完整准确,不能再使用 * 进行通配):
[[email protected] ~]# rpm -ql vim-enhanced
查询某个包的详细信息(同样包名必须完整准确):
[[email protected] ~]# rpm -qi vim-enhanced
查看一条命令是通过安装什么包产生的(命令需要绝对的路径):
[[email protected] ~]# rpm -qf vim
也可以结合反引号来使用:
[[email protected] ~]# rpm -qf `which vim`
rpm 虽然有其作用,但是有些情况下我们在用 rpm 安装或卸载时会遇到循环依赖的问题,即便使用 --nodeps 也无法解决
2.yum :
yum 命令可以通过网络或者本地源来进行安装、删除、更新、查询等操作,解决了 rpm 难以解决的循环依赖问题。
安装 vim-enhanced 包:
[[email protected] ~]# yum install -y vim-enhanced
卸载 vim-enhanced 包:
[[email protected] ~]# yum remove vim-enhanced
更新 vim-enhanced 包:
[[email protected] ~]# yum update -y vim-enhanced
查看 vim 命令是通过安装哪个包产生的(类似于 rpm -qf /usr/bin/vim),前提是 yum 源中包含该包:
[[email protected] ~]# yum provides vim
该命令等同于:
[[email protected] ~]# yum whatprovides vim
查看 yum 源中的所有安装包:
[[email protected] ~]# yum list
除了能对某个包进行操作外,yum 还可以以组为单位对安装包进行操作,相关命令如下:
[[email protected] ~]# yum groupinstall
[[email protected] ~]# yum groupremove
[[email protected] ~]# yum grouplist
常用的以组为单位进行安装的操作通常为安装开发环境(当然安装桌面也会用到 yum groupinstall):
[[email protected] ~]# yum groupinstall -y “Development tools”
注:CentOS 默认提供的 yum 源往往只能满足我们最基本的需求,如果需要通过 yum 安装其他包(如 nginx 等),必须安装其他 yum 源进行扩展,比较常用的是epel 源:
[[email protected] ~]# rpm -ivh http://www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm
如果是 64 位操作系统:
[[email protected] ~]# http://www.lishiming.net/data/attachment/forum/epel-release-6-8_64.noarch.rpm
也可以通过如下简洁的命令进行安装:
[[email protected] ~]# yum install -y epel-release
有些时候我们只想下载而不想安装,或者需要在一台可以联网的机器上下载以后拷贝到不能上网的机器上进行安装。为了解决这种需求,需要使用 yum 命令的 --downloadonly 选项:
首先,安装 yum 插件来支持 --downloadonly 选项:
[[email protected] ~]# yum install -y yum-plugin-downloadonly
之后,对已安装过的包使用 reinstall ,对未安装过的包使用 install ,假如 vim-enhanced 包未安装:
[[email protected] ~]# yum install -y vim-enhanced --downloadonly
假如 vim-enhanced 包已安装:
[[email protected] ~]# yum reinstall -y vim-enhanced --downloadonly
这样就可以将 vim-enhanced 包下载下来,默认位于 /var/cache/yum/base/packages/目录下,如果想改变存放目录,有两种方法,第一种方法,使用 --downloaddir 临时指定存放目录:
[[email protected] ~]# yum install -y vim-enhanced --downloadonly--downloaddir=/usr/local/src/
第二种方法,修改 /etc/yum.conf 配置文件:
[[email protected] ~]# vim /etc/yum.conf
[main]
cachedir=/usr/local/src/
keepcache=1
在 cachedir 处指定下载目录,keepcache 为 1 表示保存下载包,为 0 则不保存下载包。使用第二种方法时下载包也不是完全位于指定的目录根目录下,所以建议使用第一种方法,定位更加准确快捷。
使用网易的 yum 源有时更加方便,从如下网址下载其 .repo 文件:
http://mirrors.163.com/.help/CentOS6-Base-163.repo
传输到 Linux 系统中 /etc/yum.repos.d/ 目录下(备份该目录下其他文件,并将该目录清空)。重新生成缓存:
[[email protected] ~]# yum clean all
[[email protected] ~]# yum makecache
关于如何制作本地 yum 源,可以参考之前的博客,地址如下:
http://xitongjiagoushi.blog.51cto.com/9975742/1621301