《Linux系统常用的软件管理工具rpm、yum及软件源码编译安装》由会员分享,可在线阅读,更多相关《Linux系统常用的软件管理工具rpm、yum及软件源码编译安装(23页珍藏版)》请在金锄头文库上搜索。
1、Linux系统常用的软件管理工具 rpm、yum 及软件源码编译安装 2013-05-06 07:39:42标签:linux rpm yum 源码编译 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、 作者信息和本声明。否则将追究法律责任。http:/ 一、简介1. 在 windows系统上我们安装软件的时候加上了一些与这些程序相关的信息,将他建立称为了数据库,就可以实现软件的安2. 装、卸载、升级与验证了,类似于 windows的“添加删除程序”。由于在 linux系统上利用源码包设置编译参数、实际编译、3. 最后还要根据需要的方式来安装程序,这个过程很是麻烦,而且对于不熟
2、悉整个系统的用户来说,更是一种负担,所以后4. 来在我们 linux系统下至有两种常见的套件管理程序,分别是 RPM和 Debian的dpkg,其中最为常见,那么晚我们5. 下面就来介绍下 RPM。 6. 7. RPM的全名为“RedHat Package Manager”,顾名思义它是由 RedHat公司开发的。Rpm是以一种数据库记录的方式将所8. 需要的套件安装到 linux主机的一套管理程序,它最大的特点就是将要安装的套件先编译并打包,通过包装好的套件中默9. 认的数据库记录,记录这个套件在安装的时候所依赖的属性模块。用户在安装的时候,RPM 会根据套件里的记录信息,查10. 询主机的
3、依赖属性套件是否满足,如满足则给予安装。若不满足在不给于安装、安装的时候将该套件的信息全部写入RPM11. 的数据库中,以方便将来的查询、验证与卸载。这样做的优点: 12. 13. 1、由于已经编译完成并且打包,所有安装方便。 14. 15. 2、由于套件信息已经记录在了 Linux主机的数据库中,方便查询、升级与卸载。16. 17. 当然其也有其缺点,由于所有的数据已经编译完成,所以安装的时候一定需要当初安装时的主机环境,也就是说,当初建18. 立这个套件的安装环境,必须在用户主机上出现,如果不出现就无法进行安装。缺点主要如下: 19. 20. 1、安装环境必须与打包时的环境一致 21. 2
4、2. 2、需要满足套件的依赖属性需求 23. 24. 3、卸载时需要特别小心,最底层的套件不可先删除,否则可能对整个系统造成问题。 1. RPM程序的数据库位置/var/lib/rpm,这里面定义了关于 RPM管理的所有属性,当然我们如果还可以更新这个数据库的, 2. 3. rpm -rebuilddb:重建数据库,一定会重新建立。 4. rpm -initdb:初始化数据库,没有才建立,有就不用建立。 RPM相关软件包名字格式: 1. name-version-release.arch.rpm 2. 3. name-version-release-release.arch.rpm 4. 5.
5、 version:主版本号.此版本号.发行版本号.平台.rpm,对于其命名需要遵循以下规则: 6. 7. 主版本号改变:软件的功能发送了重大的改变。 8. 9. 此版本号改变:某个子功能发生了重大变化 10. 11. 发行号改变:修改了部分 bug,调整了一点点小功能。 二、1. linux下软件管理套件的出现大大降低了基本软件的安装和升级等管理难度,当然此出生一来就是2. 一一切皆文件、系统字符界面而著称的,所以虽然软件管理套件可以帮我们实现那么大的功能,也不会像windows 上面的3. 那样,我们还需要掌握关于 RPM的相关命令才能实现软件的安装、升级、卸载等功能,当然现在也有了图形界面
6、下软件的4. 管理套件,但是我们 linux系统的伟大之处是可以稳定、永久不宕机的提供服务的系统,我们不会让其运行在图形界面下5. 的,所以作为一个合格的 linux系统运维人员掌握软件的管理命令是必备、基础的要求了。下面我们来介绍介绍关于 RPM6. 的相关命令吧 RPM命令主要包括四类:安装、查询、升级、卸载、rpm 安装命令 1. rpm -i /PATH/TO/PACKAGE_FILE:安装软件包 2. rpm -h :以#显示安装进度,每个#表示 2% 3. rpm -v :显示安装详细信息 4. rpm -vv :更详细的信息 5. rpm -ivh :组合使用,一般使用这个组合来
7、安装软件 6. rpm -nodeps:忽略依赖关系。 7. rpm -replacepkgs:重新安装、替换原来安装。 8. rpm -ivh -oldpackage:降级安装。 9. rpm -ivh -force:强行安装,可以实现重装或降级 10. rpm -test:仅测试有没有依赖关系 实例:安装 zsh的安装包rpm -test:仅测试有没有依赖关系、rpm 软件查询命令:rpm -q PACKAGE_NAME:查询指定的包是否安装rpm -qa :查询以安装的所有包 rpm -qi PACKAGE_NAME:查询指定包的说明信息rpm -ql PACKAGE_NAME:查询指定
8、包安装后生成的文件列表 rpm -qc PACKAGE_NAME:查询指定包安装的配置文件 rpm -qd PACKAGE_NAME:查询指定包安装的帮助文件1. rpm -q -scripts PACKAGE_NAME:查询指定包中包含的脚本 2. rpm -qf /path/to/somefile:查询指定的文件时由那个rpm 包安装生成的 3. 如果某个 rpm包尚未安装,我们需要查询其说明信息,安装后会生成的文件 4. rpm -qpi /PATH/TO/PACKAGE_FILE 5. i:软件说明信息 6. rpm -qpL /PATH/TO/PACKAGE_FILE 7. L:软件
9、文件列表 、软件升级命令:rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,则安装rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,则退出 rpm -Uvh -oldpackage 低版本的包:降级rpm 软件卸载命令:卸载的时候此包不能被其他软件包依赖 rpm -e PACKAGE_NAME /直接卸载、但是此时如果卸载的软件被其他软件包多以来的话则不能卸载 rpm nodeps /忽略软件包之间的依赖关系、其他相关命令rpm软件校验命令: 1. rpm -V PACKAGE_NAME:无
10、输出信息就是正常,(linux 的哲学思想:没有回答则是最好的回答!嘿嘿) 2. rpm重建数据库: 3. 数据库位置:/var/lib/rpm 4. rpm -rebuilddb:重建数据库,一定会重新建立。 5. rpm -initdb:初始化数据库,没有才建立,有就不用建立。 6. rpm检验来源合法性及软件完整性: 7. 加密类型: 8. 对称:加密解密使用同一个秘钥 9. 公钥:一对秘钥,公钥、私钥;公钥隐含与私钥中,可以提取出来并公开出去。 10. 公钥:加密,私钥:身份验证 11. 红帽公钥:ls /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-relea
11、se 12. rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:导入秘钥文件 13. rpm -K /PATH/TO/PACKAGE_FILE 14. dsa,gpg:验证来源合法性,也即验证签名;可以使用-nosignature,略过此项 15. sha1,md5:验证软件包完整性;可以使用-nodigest,略过此项 16. rpm -K -nodigest /PACKAGE_NAME:只验证签名。 三、YUM1. 从上面我们学会了利用 rpm套件管理工具在 linux系统上进行软件包的安装、升级、查询、卸载等相关命令的操作和方
12、法,2. 但是我们从上面了解到我们利用rpm 来进行安装软件的时候会存在软件包之间的依赖关系,而 rpm并不能自己智能的解析其3. 各个包之间的依赖关系,但是如果我们利用 rpm nodeps和 rpm -ivh -force进行安装的时候很可能造成安装的软件4. 无法正常运行,为了解决这个问题,后来又出现了一个功能更强大的工具:YUM,yum 在 rpm的基础上很好的解决了软件包5. 之间的依赖关系。 6. 7. YUM是一种基于 C/S架构的服务,需要 Server和 Client来进行使用,即 yum仓库和本地的 yum工具。 、 服务器端配置:yum 仓库可以是本地文件、ftp服务器和
13、 http服务器。在其服务器端有 yum仓库的配置文件,yum 仓库的配置文件叫 YUM的元数据文 件,元数据文件需要存放在一个叫 repodata的目录下面,其目录和组成 yum池的rpm 包需要同处于同一个目录下,下面我们来认识一下 yum的元数据 把 各个元数据文件的解释:1. primary.xml.gz:定义了当前仓库中所有的rpm 包列表以及各包之间的依赖关系和每个软件包安装生成的文件列表 2. 3. filelists.xml.gz:当前仓库中所有RPM 包的文件列表 4. 5. other.xml.gz:额外信息,rpm 包的修改日志 6. 7. repomd.xml:记录的是
14、上面三个文件的时间戳和校验和 8. 9. comps-*.xml:RPM 包分组信息(需要手动定义) 、YUM 服务客户端的配置1. 首先确定我们系统上面安装了 yum服务软件包:yum-3.2.22-39.el5,可以利用rpm q yum来进行查看,趁着也联系联系使用上面的 rpm命令嘿嘿 2. 3. 客户端配置文件在/etc/yum.repos.d/*.repo 文件内进行定义,可以定义多个.repo文件,也可以在一个 repo文件定义多个 yum服务器,其格式如下: 4. 5. Repo_ID 6. 7. name=Description 8. 9. baseurl=yum仓库路径 10. 11. enabled=0|1:是否启用此仓库,默认不写的时候是启用 12. 13. gpgcheck=0|1:校验文件的完整性 14. 15. 注:关于 yum仓库的路径有三种: 16. 17. ftp服务器的时候: ftp:/. 18. 19. http服务器的时候:http:/. 20.