Linux下软件包管理之RPM初始化
2013-07-28 17:24
459 查看
Linux下软件包管理之RPM初始化 简单定义:rpm是linux下的一种包文件,现在用的全称叫RPM Package Manager,以前叫Redhat Package Manager。它是一种安装很方便的包,目前也有很多linux下的软件都以rpm格式发布。但它不是相当于windows中的exe文件,它的安装必须是要通过命令的(就算是rpm包的管理程序,在安装是也是通过命令方式的)rpm包有两种,二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。1、 软件包的组成部分: 1)二进制程序:如:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin2)程序的运行依赖的库文件如:/lib,/usr/lib,/usr/local/bin,2、rpm软件包管理工具包含的文件清单 a)文件清单:b)文件放置路径:c)提供的功能说明d)依赖关系e)数据库:
3、安装程序的方式: a)通用二进制格式b)软件包管理器c)软件包管理器的前端工具d)源代码编译lips:Linux下的rpm包都是经过编译的 ,而编译程序本身依赖CPU对其编译的软件进行优化,有些软件包依赖于平台比如64bit、32bitCPU。4、rpm包组成格式相关说明 RPM:打包、安装、查询、升级、卸载、数据库管理(重建) 1)源程序:name-version.tar.{gz|bz|xz}2)版本号:major.minor.release3)升级:在哪一个版本号上面进行升级4)如:bash-4.3.1.tzr.xz5)RPM包:name-version-release-arch.rpm6)发型号用于标识RPM包本身的发行号,可包含所适用的操作系统 7)arch:主机架构平台 lips:I686、X86_64 ADM64 noarch不依赖于平台 8)RPM分包: 主包:核心包 分包:支包 Bind Bind--level9)OS:安装程序lips:Linux软件包相关下载链接:http://mirros.sohu.com 搜狐镜像站点http://mirrors.163.com/ 网易镜像站点http://rpm.pbone.nethttp://rpmfind.net5、软件包安装来源可靠性和安全性建议RPM包有验证机制:来源的合法性、软件包的完整性
1)、首选光盘上存在的话还是建议用光盘上面的安装包 2)、其次是EPEL,下载下来最好还是要校验下 3)、对来源的合法性是通过公钥加密或者说是非对称加密来验证的,通常使用GPG来实现。 4)、GPG是PGP的开源实现;PGP是一种技术实现。 5)、非对称加密:一般有两个秘钥,Ppublic公钥和S secret私钥 6)、一般来讲使用公钥加密的只能使用与之配对的私钥解密,反之亦然 7)、公钥是从私钥中提取出来的,你只要有私钥,从公钥中可以把私钥提取出来。 8)、非对称加密执行的速度非常慢,所以通常不会用来所数据加密,做数字签名或秘钥交换的。私钥加密特征码,只能用公钥解密,反之亦然 9)只要能解密出来就能验证是合法的啦 10)散列值:单项算法,对比散列值 11)能解密出来说明软件包的来源是合法的, 12)只要是同样的加密算法,计算出来hash码,进行对比匹配即可。6、红帽签名,提供了公钥,RedHat系列官方公钥 lips:安装前的准备步骤: 1)、查看当前系统相关信息:
2)、RHEL6的公钥信息保存在/etc/pki/rpm-gpg/
3)、导入公钥验证信息
4)、复制光盘软件到本地
校验验证相关小贴士lips:
手把手教你学软件包安装: 从光盘复制软件包到本地安装
-i --install 安装路径-v -vv -vvv详细信息,V字越多信息越详细-h hash码,也就是警号#显示安装进度,一个警号2%,总共是50个#。Linux rpm软件包安装前的小插曲LipsRPM包具体细节的组成:1)要安装的文件2)要执行的脚本 (pre安装前、post安装后、prenu卸载前、postun卸载后)
RPM依赖的东西叫capacity中文意为能力。rpm的一些基本选项:--nodepends忽略依赖关系,与--replacepkgs(重装)搭配使用--replacepkgs重装软件包重装软件包 --replacegks
查询 查询:rpm -q |--query包名
查询rpm包安装生成的文件清单:rpm -ql 包名
查询某文件是由哪个RPM包生成的格式:rpm -qf 文件路径
查询此软件包生成的配置文件格式:rpm -qc 包名 查询包安装生成的帮助文档格式:rpm -qd 包名查询此软件包内置的脚本格式:rpm -q --scripts 包名四个脚本preinstall安装前脚本postinstall安装后脚本preuninstall卸载前脚本postuninstall卸载后脚本 linux RPM包的一些基本扩展 查询尚未安装的包的相关信息格式:rpm -qpi 软件包全名
校验,前面已经写过,这里介绍其他的校验方法 定义:检查rpm包安装生成的文件有没有被非法改变过。格式:-Vpkgname
-V选项信息的基本说明
Rpm包数据库
RPM数据库重建
RPM数据库在使用过程中出现丢失或者损坏的情况下需要重建数据库,以保证系统中RPM软件包的正常运行。
#rebuild initdb //重新初始化丢失了的库
rebuilddb重建,无论事先是否存在#rpm –rebuilddb //在rpm数据库已破坏且不能安装软件包的时候使用 至此,linux RPM软件的基本管理暂且写到此处,难免会有错误和遗漏之处,请大家多提出意见和建议,谢谢。本文出自 “Linux运维” 博客,转载请与作者联系!
3、安装程序的方式: a)通用二进制格式b)软件包管理器c)软件包管理器的前端工具d)源代码编译lips:Linux下的rpm包都是经过编译的 ,而编译程序本身依赖CPU对其编译的软件进行优化,有些软件包依赖于平台比如64bit、32bitCPU。4、rpm包组成格式相关说明 RPM:打包、安装、查询、升级、卸载、数据库管理(重建) 1)源程序:name-version.tar.{gz|bz|xz}2)版本号:major.minor.release3)升级:在哪一个版本号上面进行升级4)如:bash-4.3.1.tzr.xz5)RPM包:name-version-release-arch.rpm6)发型号用于标识RPM包本身的发行号,可包含所适用的操作系统 7)arch:主机架构平台 lips:I686、X86_64 ADM64 noarch不依赖于平台 8)RPM分包: 主包:核心包 分包:支包 Bind Bind--level9)OS:安装程序lips:Linux软件包相关下载链接:http://mirros.sohu.com 搜狐镜像站点http://mirrors.163.com/ 网易镜像站点http://rpm.pbone.nethttp://rpmfind.net5、软件包安装来源可靠性和安全性建议RPM包有验证机制:来源的合法性、软件包的完整性
1)、首选光盘上存在的话还是建议用光盘上面的安装包 2)、其次是EPEL,下载下来最好还是要校验下 3)、对来源的合法性是通过公钥加密或者说是非对称加密来验证的,通常使用GPG来实现。 4)、GPG是PGP的开源实现;PGP是一种技术实现。 5)、非对称加密:一般有两个秘钥,Ppublic公钥和S secret私钥 6)、一般来讲使用公钥加密的只能使用与之配对的私钥解密,反之亦然 7)、公钥是从私钥中提取出来的,你只要有私钥,从公钥中可以把私钥提取出来。 8)、非对称加密执行的速度非常慢,所以通常不会用来所数据加密,做数字签名或秘钥交换的。私钥加密特征码,只能用公钥解密,反之亦然 9)只要能解密出来就能验证是合法的啦 10)散列值:单项算法,对比散列值 11)能解密出来说明软件包的来源是合法的, 12)只要是同样的加密算法,计算出来hash码,进行对比匹配即可。6、红帽签名,提供了公钥,RedHat系列官方公钥 lips:安装前的准备步骤: 1)、查看当前系统相关信息:
# lsb_release -a # uname -a
2)、RHEL6的公钥信息保存在/etc/pki/rpm-gpg/
# ls /etc/pki/rpm-gpg/ -l
3)、导入公钥验证信息
#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
4)、复制光盘软件到本地
#cp zip-3.0-1.el6.x86_64.rpm /test #cd /test5、检查签名,验证软件包来源合法性
rpm -K zip-3.0-1.el6.x86_64.rpm
校验验证相关小贴士lips:
# rpm -K --nodigest zip-3.0-1.el6.x86_64.rpm //不检验单项的相关内容(sda1,md5)
# rpm -K --nosignature zip-3.0-1.el6.x86_64.rpm //不检验签名信息(gpg,dsa)
手把手教你学软件包安装: 从光盘复制软件包到本地安装
# mount /dev/cdrom /media/cdrom/ //挂载光盘 # cd /media/cdrom/Packages/ //切换到光盘软件包所在目录 #ls # cp zip-3.0-1.el6.x86_64.rpm /test/ //复制相关软件包到本地test目录下 # cp zip-3.0-1.el6.x86_64.rpm /test/ //执行安装 # rpm -K zip-3.0-1.el6.x86_64.rpm //执行公钥校验软件包来源信息的合法性 # rpm -ivh /test/zip-3.0-1.el6.x86_64.rpm //执行安装
-i --install 安装路径-v -vv -vvv详细信息,V字越多信息越详细-h hash码,也就是警号#显示安装进度,一个警号2%,总共是50个#。Linux rpm软件包安装前的小插曲LipsRPM包具体细节的组成:1)要安装的文件2)要执行的脚本 (pre安装前、post安装后、prenu卸载前、postun卸载后)
# rpm -ivh --test bind-chroot-9.8.2-0.17.rc1.el6.x86_64.rpm依赖关系lips: 定义:一个RPM 包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件包的依赖关系;依赖关系并不是Linux特有的,Windows操作系统中也是同样存在的;比如我们在Windows系统中运行3D游戏,在安装的时候,他可能会提示,要安装Direct 9 ;Linux和Windows原理是差不多的。
RPM依赖的东西叫capacity中文意为能力。rpm的一些基本选项:--nodepends忽略依赖关系,与--replacepkgs(重装)搭配使用--replacepkgs重装软件包重装软件包 --replacegks
# rpm -qa |grep ^zip # rpm -ivvvh --replacepkgs zip-3.0-1.el6.x86_64.rpm
--force无视冲突卸载 -e 后面跟软件包名 e----> erase 擦除之意 lips:擦除、抹除之意,只有别的软件或相关进程依赖于某个软件时才提示不能卸载,如果此软件依赖于其他相关软件和进程的话卸载是任何相关提示信息的。升级 -F:old-->new,无old,则不new -U old --->无old,安装new -vh也是常用的组合选项,以显示详细信息的方式安装 关于内核的lips注意:内核不应该升级安装,内核允许多版本并存,多疑可以内核;如果测试一段时间新内核很稳定的话可以直接卸载旧内核,不过还是建议备份哦!升级之后即使新内核不稳定或者无法启动再启用新内核即可;不影响公司正常业务的开展!这是大家要注意的事项哦!
查询 查询:rpm -q |--query包名
# rpm -q zip
#rpm -qa //查询系统中所有已安装的软件包 # rpm -qi zip //查询zip软件包的相关信息lips: rpm包单项加密,所谓单项加密就是提取数据的指纹信息。特点:1)如果原数据一样,结果一定会一样;2)雪崩效应,如果原数据有一点点不同,结果就大大不同;初始条件的微 小改变会引起结果的巨大改变。单项加密会提取数据的特征码,如果,两次提取不一样呢?官方:提取rpm特征码,附加在光盘里面,使用自己的私钥加密。关于对验证签名的简单lips: 1)用官方的公钥解密这段加密的特征码;得到可靠的官方提供的特征码;2)单项加密不可逆,自己再使用同样的方法提取特征码,并比较和解密出来的特征码是否一致;RPM -ql 软件包名 用于显示RPM包安装完成之后在系统上生生成了哪些文件。
# rpm -ql zip
查询rpm包安装生成的文件清单:rpm -ql 包名
查询某文件是由哪个RPM包生成的格式:rpm -qf 文件路径
# rpm -qf /etc/inittab
查询此软件包生成的配置文件格式:rpm -qc 包名 查询包安装生成的帮助文档格式:rpm -qd 包名查询此软件包内置的脚本格式:rpm -q --scripts 包名四个脚本preinstall安装前脚本postinstall安装后脚本preuninstall卸载前脚本postuninstall卸载后脚本 linux RPM包的一些基本扩展 查询尚未安装的包的相关信息格式:rpm -qpi 软件包全名
# rpm -qpi bind-9.8.2-0.17.rc1.el6.x86_64.rpm
校验,前面已经写过,这里介绍其他的校验方法 定义:检查rpm包安装生成的文件有没有被非法改变过。格式:-Vpkgname
# rpm -V zip
# rpm -ql zip 查看此文件生成了哪些文件 # rpm -ql zip # echo "i love linux" >> /usr/share/doc/zip-3.0/algorith.txt # rpm -V zip
-V选项信息的基本说明
S | 表示size大小之意 | L | Readlink路径不匹配 |
M | 表示权限为改变 | U | 属主改变 |
5 | Md5特征码之意 | G | 属组改变 |
D | 主次设备号不匹配 | T | 最近一次的修改时间 |
# ls /var/lib/rpm/ -l //RPM数据库文所在路径
RPM数据库重建
RPM数据库在使用过程中出现丢失或者损坏的情况下需要重建数据库,以保证系统中RPM软件包的正常运行。
#rebuild initdb //重新初始化丢失了的库
rebuilddb重建,无论事先是否存在#rpm –rebuilddb //在rpm数据库已破坏且不能安装软件包的时候使用 至此,linux RPM软件的基本管理暂且写到此处,难免会有错误和遗漏之处,请大家多提出意见和建议,谢谢。本文出自 “Linux运维” 博客,转载请与作者联系!
相关文章推荐
- Linux基础3(用户/组管理,rpm,yum,源码安装软件)
- linux软件安装管理与安装RPM时的挂载的概念
- Linux的软件安装管理 deb rpm yum atp-get
- linux使用RPM来管理软件包
- Linux软件包管理{rpm|yum|源码包}2015082901
- Linux-软件包管理-rpm命令管理-安装-卸载
- linux初学(二十)之linux软件管理基础之RPM软件包管理
- 菜鸟学Linux 第029篇笔记 软件管理,rpm命令
- linux软件包管理-rpm
- Linux 八 软件管理:RPM、YUM
- linux笔记:RPM软件包管理-rpm命令管理
- linux的软件包管理工具---rpm与yum
- Linux软件安装管理 - CentOS(一)---- 软件包管理简介 & rpm命令管理
- [Linux 软件包管理] rpm 建包原理
- LINUX软件管理 (源代码、RPM、YUM)
- Linux 软件包管理常用命令 -- rpm
- Linux软件包管理(YUM、RPM、源代码包、脚本安装)
- linux软件包管理——rpm包管理
- 【Linux 入门笔记】RPM软件包管理
- linux入门基础——linux软件管理RPM