码迷,mamicode.com
首页 > 系统相关 > 详细

Linux学习之路8-RPM及YUM的使用

时间:2015-09-14 08:17:49      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:rpm   linux   yum   

 

RPM及YUM的使用

 

 

RPM包管理器:RPM is package manager

程序包的组成部分

         二进制程序:/bin, /sbin,/ /usr/bin, /usr/sbin,

         库文件:/lib64, /usr/lib64

         配置文件:/etc

         帮助文件:manual, info

 

RPM包的命名

1)分包机制 核心包testapp-version  分支包 testapp-devel-version

Version 主版本号major(重大功能改进等)-次版本号minor(小幅功能修改)-修正号release(通常是bug的修复)

例:bash-4.4.2.tar.gz

 

2)命名机制:

name-version-release.arch.rpm

说明:bash-4.2.4-1.el7.x86_64.rpm

bash 软件名称

4.2.4程序版本号

1.el7 其中1是软件包版本号,作者有可能不断改进,el7是适用操作系统

X86_64硬件平台,还有i386,i486,i586,i686,x86_64、ppc、sparc、alpha

 

RPM包的制作:rpmbuild命令,不多做介绍

 

RPM包管理命令:

查询功能

1.已安装软件的查询

1)对系统中已经安装软件的查询

语法:rpm –q 软件名

例:

技术分享

 

2)查看系统中所有安装的包就用rpm –qa,输出信息太长后面还可以管道加more分页查看

技术分享

 

3)在所有已经安装软件中查找某个软件

语法:rpm –qa | grep httpd

技术分享

 

4)查询一个已安装文件属于哪个软件包,这里用which httpd查询它的绝对路径

技术分享 

5)查询一个已安装软件包的信息

语法:rpm –qi httpd

技术分享

 

6)查询已安装软件包的文件都安装到何处,或者是列出已安装软件包所安装的文件

语法:rpm –ql httpd

技术分享

 

7)查看已安装软件的配置文件

语法:rpm –qc httpd

技术分享

 

8)查看已安装软件的文档安装位置

语法:rpm –qd httpd

技术分享

 

9)查看已安装软件所依赖的软件包及文件

语法:rpm –qR httpd

技术分享

 

技巧:可以把一系列的查询条件组合起来使用,例:rpm –qil httpd 就一次输出信息了

 

2.未安装软件包的查询

查看的前提是要有一个.rpm文件,对现有rpm文件的查看,其实就是在查看的基础上增加了一个p参数1)查看一个软件包的用途、版本等信息

rpm –qip 软件名

技术分享

 

2)查看一件软件包所包含的文件

语法: rpm -qpl 软件包.rpm

举例:

[root@dx201-lvm RPMS]# rpm -qpl lynx-2.8.5-23.i386.rpm

 

3)查看软件包的文档所在的位置

语法: rpm -qpd 软件包.rpm

举例:

[root@dx201-lvm RPMS]# rpm -qpd lynx-2.8.5-23.i386.rpm

 

4)查看一个软件包的配置文件

语法: rpm -qpc 软件包.rpm

举例:

[root@dx201-lvm RPMS]# rpm -qpc lynx-2.8.5-23.i386.rpm

 

5)查看一个软件包的依赖关系

语法: rpm -qpR软件包.rpm

举例:

[root@dx201-lvm RPMS]# rpm -qpR lynx-2.8.5-23.i386.rpm

 

RPM包的安装

rpm {-i|--install} [install-options] PACKAGE_FILE ...

-i 安装

-v 显示安装进程,如果需要更详细信息可用-vv或-vvv

-h 安装时输出hash记号(#),进度条

--test 只对安装进行测试,或者用于检测依赖关系,并不实际安装

--nodeps 忽略依赖关系

--replacepkgs 重装,已安装软件再安装多一次

--prefix 将软件安装到指定路径

--force 强制安装,忽略软件及文件等冲突

 

例:rpm -ivh --test php-common-5.3.3-40.el6_6.x86_64.rpm  测试安装

技术分享

 

 

升级:

rpm -U ( or --upgrade) options file1.rpm ... fileN.rpm

-Uvh: 如果有旧版程序包,则升级之;如果没有,则安装之;

       -Fvh: 如果有旧版程序包,则升级之;如果没有,则不安装;

        --oldpackage:降级,由新版本降为旧版本

        --nodeps 忽略依赖关系

 

例:rpm -Fvh php-common-5.3.3-40.el6_6.x86_64.rpm

    rpm -Uvh php-common-5.3.3-40.el6_6.x86_64.rpm

 

卸载:

rpm {-e|--erase} [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...

例:rpm -e php-common-5.3.3-40.el6_6.x86_64.rpm

 

RPM包检验、导入签名(包来源合法性验证、完整性验证)

密钥导入

语法:rpm –import key

技术分享

 

包检验

语法:rpm –K 软件名称

技术分享

        

 

YUM: Yellowdog Updater Modified

 

配置文件

/etc/yum.conf

         定义全局配置:对所有仓库都适用的配置

/etc/yum.repos.d/*.repo

         一个文件通常用于一个或一组功能相近或相关的仓库

 

   repo文件解析(定义一个仓库指向):

             [REPO_ID]唯一ID,可以在一个文件内定义多个

             name= 该组的说明

             baseurl= 源的地址链接

             # mirrorlist=SCHEME://HOSTNAME/PATH/TO/MIRROR_LIST_FILE地址列表

             enabled={1|0} 该配置是否生效

             gpgcheck={1|0} 是否检查合法来源

             gpgkey= key路径

             cost= 相当与优先级,越小优先级越高

 

   定义仓库指向可用变量:

             $releasever: 引用当前系统的主版本号;

             $basearch: 当前系统的基本架构i386, i486, i586, i686,x86_64

             例:http://mirrors.magedu.com/CentOS/$releasever/os/$basearch

 

命令

 

安装:install 例:yum –y install httpd 安装httpd并且无需确认

 

卸载:remove

 

   升级:updates  例:yum list updates列出已安装的可升级的软件包列表

yum check-update很像 yum list updates 但是如果有可用更新的话会返回退出代号 100。方便写 shell 脚本

 

查询

     info  例:yum info httpd

     search KEYWORD 例:yum search httpd

     list  all|installed|availiable

           例: yum list 默认列出所有,和list all一样

yum list all 列出所有软件仓库里和系统已安装的包

                yum list installed 列出系统已经安装的包

                yum list availiable 列出所有可用的软件仓库可安装的包

yum list updates这个命令列出已安装的可升级的软件包列表

 yum list recent这个命令列出最近 7 天加入的软件包列表

 

provides /PATH/TO/SOMEFILE: 查询指定文件由哪个包安装生成,类似rpm -qf

           例:yum provides `which httpd`

 

重新安装:reinstall

           例:yum reinstall autofs

 

降级:downgrade

 

清理缓存:clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

        例: yum clear all

             yum clean packages

             yum clean metadata

 

生动生成缓存:makecache

         例:yum makecache就是把服务器的包信息下载到本地电脑缓存起来

配合yum -C search xxx使用,不用上网检索就能查找软件信息

执行完 yum makecache之后,你可以用yum search subversion

和yum -C search subversion试下,看看二者速度差别有多大

 

 

包组管理:

                 grouplist

                 groupinfo groupname

                 groupinstall groupname

                 groupremove groupname

grouplist

例:yum grouplist这个操作将为你的系统在两个单独的列表中列出所有已经安装的和可用的组。

 

groupinfo

例:yum groupinfo groupname

该操作将显示每个组的详细信息,包括:描述信息,是必须安装还是默认或者可选安

装包。

 

groupinstall

例:yum groupinstall groupname

安装命名组的包

 

groupupdate

例:yum groupupdate groupname

升级命名组的包

 

groupremove

例:yum groupremove groupname

删除在命名组中的任何类型的所有包,并且所有依赖于该组中的包也会被

删除。

 

 

YUM技巧

 

1)更换其他YUM源,新增或编辑/etc/yum.repo/yumname.repo文件,更改baseurl,指向新的源即可

 

技术分享

 

2)创建本地仓库,建立本地源

 

先创建源的本地目录mkdir /local-yum,再在其目录下创建一个放置rpm包的目录mkdir /local-yum/i386,然后拷贝rpm包到i386目录下,最后用createrepo /local-yum 生成源必须的repodata目录及文件,最后修改/etc/yum.repo.d/yumname.repo文件即可

 

技术分享

 

3)利用http服务建立本地YUM源

 

  •  首先安装httpd服务:yum –y install httpd

  •  编辑/etc/httpd/conf/httpd.conf里的#ServerName www.example.com:80,改为ServerName localhost:80,如果有自己的域名改成域名也可以

  •  在/var/www/html下创建目录mkdir –p /local-yum/i386

  •  拷贝rpm包到/local-yum/i386下

  •  建立源Createrepo /local-yum

  •  启动httpd服务:server httpd start

  •  设置开机启动httpd服务:chkconfig httpd on

  •  修改/etc/yum.repo.d/yumname.repo文件,baseurl=http://localhost/local-yum

 

4)本地源如果增加了新的rpm包,需要再运行一次createrepo 源目录 以便更新配置文件

 

5)可以利用reposync命令同步软件到本地

   例:reposync –p /local-yum/i386 –repoid=aliyun

     根据repo文件中的aliyun字段的配置,把上面的软件同步到/local-yum/i386目录下

 

本文出自 “天真小同志” 博客,请务必保留此出处http://dengxi.blog.51cto.com/4804263/1694414

Linux学习之路8-RPM及YUM的使用

标签:rpm   linux   yum   

原文地址:http://dengxi.blog.51cto.com/4804263/1694414

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