您的位置:首页 > 运维架构 > Linux

LINUX RPM、YUM软件包的管理

2014-07-19 23:04 253 查看
一、RPM、YUM 软件包管理管理工具的简介
1、首先讲一下自己的感觉:对于 初学linux的人来说安装软件是比较头疼的事,大家习惯了windos的操作,是中文的,只要上网一搜什么都有,然后下一步安装就行啦,卸载的话更是简单,在卸载或更改程序了么也很简单,还有360等。linux软件包大致分三种:以.rpm 、压缩包、源码包最为常见,却他们的安装方法也是有差别的。掌握好软件安装卸载工具是以后搭建服务不可缺少的必备能力,而 RPM、YUM 就是不可或缺的利器。2、rpm的简单介绍
1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
3、可以在查询系统中的软件包是否安装以及其版本;
4、作为开发者可以把自己的程序打包为RPM 包发布;
5、软件包签名GPG和MD5的导入、验证和签名发布
6、对于报的依赖性不是很好的处理工具
7、对已安装和未安装的软件是个很好的查询工具
1、yum是yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题. 它能便于管理大量系统的更新问题
2、可以同时配置多个资源库(Repository)
3、简洁的配置文件(/etc/yum.conf)
4、自动解决增加或删除rpm包时遇到的倚赖性问题
5、使用方便
6、保持与RPM数据库的一致性
二、软件包安装的地方程序包的组成格式:二进制程序
/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin, /usr/local/APP/{bin,sbin}
有些特殊的应用程序放置于libexec目录中有些第三方应用默认安装于/opt目录库文件(开发库、运行库)
/lib64, /usr/lib64, /usr/local/lib64, /usr/local/APP/lib
/etc   /usr/local/APP/etc或conf目录
帮助文件
/usr/share/man, /usr/local/share/man, /usr/local/APP/man
doc: README, INSTALL, ChangeLog
ldd:
ldd /path/to/binary_file
源代码:
name-version.tar.{gz,bz2,xz}
version:major.minor.release
name-version-relase.arch.rpm
bash-4.2.3-3.centos5
x86: i386, i486, i586, i686等;
x86_64: x86_64
powerpc: ppc例如:
bash-4.2.3-3.centos5.x86_64.rpm

一个程序有20个功能:常用功能有8个,特殊A:3个,特殊B:6个,二次开发相关功能:3
分包机制:核心包,主包:命名与源程序一致
bash-4.2.3-3.centos7.x86_64.rpm
子包:
bash-a-4.2.3-3.centos7.x86_64.rpm
bash-b-4.2.3-3.centos7.x86_64.rpm
bash-devel-4.2.3-3.centos7.x86_64.rpm
获取rpm包的途径:1、OS Vendor: 系统发行商提供的发行的光盘或站点服务器镜像:
http://mirrors.163.com http://rpmfind.net' target='_blank'>http://mirrors.sohu.com
源代码rpm包3、很多第三方机构或个人制作并公开发布许多rpm包
http://rpmfind.net http://rpm.pbone.net
Fedora-EPEL六、基本命令rpm包管理器的常见使用场景:安装程序包:
rpm [option] /path/to/package_file
-i: install  安装
-v: verify   查证核实,详细
-h: 以-v组合更好的显示详细信息
组合选项:-ivh
--test: 仅作测试,有真正执行安装
如果依赖于其它包:
1、解决依赖关系2、忽略依赖关系能安装上,但有可能无法运行;--nodeps重新安装:
--replacepkgs如果原有配置文件作了修改,很有可能不执行替换,而是将应该安装生成的配置文件重命名为 .rpmnew
卸载程序包:
rpm [option] package_name
-e: erase
1、将依赖于此包的所有包一并卸载2、忽略依赖关系能卸载,但依赖于此包程序包可能会运行不正常;--nodeps升级程序包:新版本替换老版本
rpm [option] /path/to/package_file
1、升级或安装-Uvh2、纯升级
-FvhX --> Y-2.2.1
Y-2.2.3升级后的版本冲突等;--force: 强制升级
注意:不应该对内核执行升级操作,而是安装系统允许多内核并存查询操作:
1、查询某包是否安装
rpm -q package_name...
2、查询所有已经安装的包
rpm -qa
按条件过滤:rpm -qa | grep 'PATTERN'
3、查询包的描述信息
rpm -qi package_name
4、查询某包安装生成了哪些文件
rpm -ql package_name
(1) 查询某包安装生成了哪些配置文件
pm -qc package_name
(2) 查询某包安装生成了哪些帮助文件
rpm -qd package_name
(3) 查询程序包的相关脚本
rpm -q --scripts package_name
脚本有四类:
preinstall:安装前脚本
postinstall: 安装后脚本
preuninstall: 卸载前脚本
postuninstall: 年前后脚本
5、查询某文件是由哪个包安装生成的
rpm -qf /path/to/some_file
6、对尚未安装的包执行查询
rpm [option] /path/to/package_file
-qpi 查询未安装包未安装的描述信息
-qpl 查询未安装生包会生成了哪些文件
-qpc 查询未安装包会生成了哪些帮助文件
-qpd 查询未安装程序包的相关脚本
2、yum客户端命令的使用:
1、列出所有可用repo
yum repolist {enabled|disabled|all}
2、列出rpm包
yum list {all|installed|available}
yum list KEYWORD*
3、包的描述信息
yum info package_name
4、列出所有的包组信息
yum grouplist
5、显示包组的信息:例如组中包含的程序包列表
yum groupinfo "GROUP NAME"
CentOS6 跟开发相关的包组:
Development Tools
Server Platform Development
Desktop Platform Development
6、清理缓存
yum clean {all|packages|metadata|expire-cache|rpmdb|plugins}
7、安装程序包
yum install package_name
重新安装:
yum reinstall package_name
8、升级
yum check-update: 检查可用的升级包
yum update package_name
x-1.3.1
x-1.3.2, x-1.3.3, x-2.0.1
yum update x-1.3.2
yum downgrade package_name
9、卸载
yum remove|erase package_name
10、查询某文件是由哪个包安装生成的
yum whatprovides|provides /path/to/somefile
11、安装包组
yum groupinstall "GROUP NAME"
12、卸载包组
yum groupremove "GROUP NAME"
以httpd软件为例1、查询安装了那些rpm包


2、查询httpd的详细信息



3、查询是否安装了httpd



4、查询httpd安装生成了那些文件




5、查询httpd安装生成了那些配置文件



6、查询httpd安装生成了那些帮助文件



7、查询yum有几个yum仓库源



8、查询yum仓库有那些安装包



9、查询包中与mysql相关的包



10、查询yum当中的包组信息



11、重新安装http软件




12、查询需要升级的安装包



13、卸载httpd软件包



14、安装httpd软件



七、总结 个人觉得用rpm管理工具查询好用,查询信息详细。用yum管理工具安装好用,解决了包依赖关系。其它的就是命令打熟就好啦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  管理工具 yum rpm