码迷,mamicode.com
首页 > 其他好文 > 详细

学习笔记(十)——软件包管理:rpm + yum

时间:2015-04-14 20:19:25      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:linux   rpm   yum   

1.rpm

rpmRedHat Package Manager)是 RedHat 的软件包管理工具,由于CentOS 是基于 RedHat Linux的,所以 rpm 对于 CentOS 同样适用。下面列举了一些rpm 的常用参数:

[root@localhost ~]# rpm -ivh packagename.rpm        //安装包

[root@localhost ~]# rpm -e packagename.rpm          //卸载包

如果要卸载 vim-enhanced 包,使用如下命令:

[root@localhost ~]# rpm -e vim-enhanced

通过如下命令查看是否删除成功:

[root@localhost ~]# echo $?

该命令很常用,如果 $? 值为 0,则上一条命令执行成功;如果$? 值非0,则命令执行失败。

安装 / 卸载包时,经常会有各种互相依赖的关系,使用 --nodeps 可以忽略依赖关系,单独安装 / 卸载包:

[root@localhost ~]# rpm -e vim-enhanced --nodeps

[root@localhost ~]# rpm -Uvh packagename.rpm  //更新包

查询系统安装的所有包:

[root@localhost ~]# 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 的包:

[root@localhost ~]# rpm -qa *vim*

上条命令与结合使用 grep 效果相同:

[root@localhost ~]# rpm -qa | grep “*vim”

查看安装一个包具体多出了哪些文件(此处包名必须完整准确,不能再使用 * 进行通配):

[root@localhost ~]# rpm -ql vim-enhanced

查询某个包的详细信息(同样包名必须完整准确):

[root@localhost ~]# rpm -qi vim-enhanced

查看一条命令是通过安装什么包产生的(命令需要绝对的路径):

[root@localhost ~]# rpm -qf vim

也可以结合反引号来使用:

[root@localhost ~]# rpm -qf `which vim`

rpm 虽然有其作用,但是有些情况下我们在用 rpm 安装或卸载时会遇到循环依赖的问题,即便使用 --nodeps 也无法解决

 

2.yum

yum 命令可以通过网络或者本地源来进行安装、删除、更新、查询等操作,解决了 rpm 难以解决的循环依赖问题。

安装 vim-enhanced 包:

[root@localhost ~]# yum install -y vim-enhanced

卸载 vim-enhanced 包:

[root@localhost ~]# yum remove vim-enhanced

更新 vim-enhanced 包:

[root@localhost ~]# yum update -y vim-enhanced

查看 vim 命令是通过安装哪个包产生的(类似于 rpm -qf /usr/bin/vim),前提是 yum 源中包含该包:

[root@localhost ~]# yum provides vim

该命令等同于:

[root@localhost ~]# yum whatprovides vim

查看 yum 源中的所有安装包:

[root@localhost ~]# yum list

除了能对某个包进行操作外,yum 还可以以组为单位对安装包进行操作,相关命令如下:

[root@localhost ~]# yum groupinstall

[root@localhost ~]# yum groupremove

[root@localhost ~]# yum grouplist

常用的以组为单位进行安装的操作通常为安装开发环境(当然安装桌面也会用到 yum groupinstall):

[root@localhost ~]# yum groupinstall -y “Development tools”

    注:CentOS 默认提供的 yum 源往往只能满足我们最基本的需求,如果需要通过 yum 安装其他包(如 nginx 等),必须安装其他 yum 源进行扩展,比较常用的是epel

[root@localhost ~]# rpm -ivh http://www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm

如果是 64 位操作系统:

[root@localhost ~]# http://www.lishiming.net/data/attachment/forum/epel-release-6-8_64.noarch.rpm

也可以通过如下简洁的命令进行安装:

[root@localhost ~]# yum install -y epel-release

有些时候我们只想下载而不想安装,或者需要在一台可以联网的机器上下载以后拷贝到不能上网的机器上进行安装。为了解决这种需求,需要使用 yum 命令的 --downloadonly 选项:

首先,安装 yum 插件来支持 --downloadonly 选项:

[root@localhost ~]# yum install -y yum-plugin-downloadonly

之后,对已安装过的包使用 reinstall ,对未安装过的包使用 install ,假如 vim-enhanced 包未安装:

[root@localhost ~]# yum install -y vim-enhanced --downloadonly

假如 vim-enhanced 包已安装:

[root@localhost ~]# yum reinstall -y vim-enhanced --downloadonly

这样就可以将 vim-enhanced 包下载下来,默认位于 /var/cache/yum/base/packages/目录下,如果想改变存放目录,有两种方法,第一种方法,使用 --downloaddir 临时指定存放目录:

[root@localhost ~]# yum install -y vim-enhanced --downloadonly--downloaddir=/usr/local/src/

第二种方法,修改 /etc/yum.conf 配置文件:

[root@localhost ~]# 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/ 目录下(备份该目录下其他文件,并将该目录清空)。重新生成缓存:

[root@localhost ~]# yum clean all

[root@localhost ~]# yum makecache

 

   关于如何制作本地 yum 源,可以参考之前的博客,地址如下:

   http://xitongjiagoushi.blog.51cto.com/9975742/1621301

 


本文出自 “细桶假狗屎” 博客,请务必保留此出处http://xitongjiagoushi.blog.51cto.com/9975742/1632110

学习笔记(十)——软件包管理:rpm + yum

标签:linux   rpm   yum   

原文地址:http://xitongjiagoushi.blog.51cto.com/9975742/1632110

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!