rpm包总结

rpm命令:
 rpm:
  数据库: /var/lib/rpm
 rpmbuild:SRPM:其提供的软件内容并没有被编译,它提供的是代码源,需要自己通过编译。
 
安装的时候RPM与SRPM需要注意的问题
 1、软件安装的环境必须与打包时的环境需求一致或相当;
 2、需要满足软件的依赖属性需求;
 3、反安装时需要特别小心,最底层的软件不可先删除,否则可能造成整个系统的问题,
  则此时需要的步骤、用SRPM
 先将该文件以RPM管理的方式编译,此时SRPM会被编译成为RPM文件;
 然后将编译完成的RPM文件安装到Linux系统中
 
  
RPM的优点
 1、RPM内含已经编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰
 2、RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本,可避免文件被错误安装
 3、RPM文件本身提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件等信息,以便与了解软件
 4、RPM管理的方式使用数据库记录RPM文件的相关参数,便于升级、删除、查询与验证
 
 rpm:
 1、安装(install):
  rpm -i /PATH/TO/PACKAGE_FILE
   -h:以#显示进度:每个#表示2%
   -v:显示详细安装
   -vv:显示更详细的过程
   
  rpm -ivh /PATH/TO/PACKAGE_FILE
      rpm -ivh rp-pppoe-3.5-32.1.i386.rpm
      rpm -ivh http://
   --nodeps:忽略依赖关系
   --replacepkgs:重新安装,替换原有安装;
   --force:强行安装,可以实现重装或降级;
      在没有网络的情况下,想用光盘来安装,那么就需要
       挂载光盘,使用: mount /dev/cdrom /media
       找出文件的实际路径:find /media -name ‘pam-devel*‘
       测试此软件是否有依赖性:rpm -ivh pam-devel... --text
       直接安装:rpm -ivh pam-devel...
       卸载光盘:umount /dev/cdrom
 
 2、查询 (query)
  rpm -q PACKAGE_NAMEPACKAGE_NAME

rpm -qa:查询已经安装的所有包
  rpm -qi PACKAGE_NAME:查询指定包的说明信息;
  rpm -ql PACKAGE_NAME:查询指定安装包后生成的文件列表;
  rpm -qc PACKAGE_NAME:查新指定包安装的配置文件;
  rpm -qd PACKAGE_NAME:查新指定包安装的配置文件;
  

rpm -q --scripts PACKAGE_NAME:查询指定包中包含的脚本

  
  rpm -qf /PATH/TO/SOMEFILE:查新指定的文件是由哪个rpm包安装生成的
  
  如果某rpm包尚未安装,我们需查询器说明信息、安装以后会生成的文件;
  rpm -qpi /PATH/TO/PACKAGE_FILE i软件包的信息
  rpm -qpl /PATH/TO/PACKAGE_FILE l软件包的列表
  
     rpm -qa  <==已安装软件
     rpm -q[licdR]  <==已安装的软件
     rpm -qf 存在于系统上的某个文件名
     rpm -qp[licdR]未安装的某个文件名

以上内容均为查询选项,这里就不一一演示了。

3、升级
  rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的则升级,否则安装
  rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的则升级,否则退出
   --oldpackage:降级
   
 4、卸载
  rpm -e PACKAGE_NAME 
   --nodeps
     找出与pam有关的软件名称,并删除
      rpm -qa | grep pam
      rpm -e pam
 5、校验
  rpm -V PACKAGE_NAME检查文件是不是被非法改变过的
  显示出的8个字段
字段1:S--表示大小
字段2:M--文件类型权限
字段3:5--MD5
字段4:D--设备的主设备号与次设备号不一直
字段5:Lreadlink---路径
字段6:U--属主
字段7:G--属组
字段8:T--最近一次的修改时间

6、重建数据库
  rpm
   --rebuilddb:重建数据库,一定会重新建立;
   --initdb:初始化数据库,没有才建立,有就不用建立;
 
 7、检验来源合法性,及软件包完整性;
  加密类型:
   对称:加密解密使用同一对密钥
   公钥:一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来并公开出去
   单向:
   /etc/pki/rpm-gpg/
    rpm -K /PATH/TO/PACKAGE_FILE
    dsa,gpg:验证来源合法性,也即验证签名:可以使用 --nosignature略过此项
    sha1,md5:验证软件包完整性;可以使用--nodigest,略过此项
  
    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:导入密钥文件

时间: 2024-08-25 17:19:39

rpm包总结的相关文章

LAMP基于RPM包搭建

一:简述 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准. HTTP是一个客户端和服务器端请求和应答的标准(TCP).客户端是终端用户,服务器端是网站.通过使用Web浏览器.网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求.(我们称这个客户端)叫用户代理(user agent).应答的服务器上存储着(一些)资源,比如HTML文件和图像.(我们称)这个

RPM包安装LAMP及httpd虚拟机SSL实现

简单罗列基础命令,只分享我的想法! 目的:通过RPM包安装LAMP,提供两个虚拟主机,一个用于WordPress,一个用于phpMyAdmin,为后一个提供ssl访问方式. 环境是vmware的虚拟机CentOS6.6,实机win7,后面的测试会用到win7上面的浏览器,已经把虚拟机中CentOS中的两个httpd的虚拟机的名字加入到win7的hosts文件中. 1.  修改yum源,指向CentOS的系统光盘,需要使用RPM包,配置如下: 图1 2.  安装apache的httpd,直接yum

rpm包安装mysql的常见问题

我们在Linux系统中,如果要使用关系型数据库的话,基本都是用的mysql,而且以往7以下版本的centos 系统都是默认的集成有mysql.然而对于现在最新的centos7系统来说,已经不支持mysql数据库,它默认 内部集成了maridb,如果我们想要使用 mysql 的话,就要先将原来的maridb卸载掉,不然会引起冲突. 注:这里说的冲突是指我们用rpm包的方式安装mysql会产生错误:mariadb-libs is obsoleted by mysql**.然而笔者使用源码包进行安装时

Linux-rpm命令-查看已安装软件包信息及未安装rpm包信息

博文说明[前言]: 本文将通过个人口吻介绍rpm命令,包括查看已安装软件包信息及未安装rpm包信息. 在目前时间点[2017年6月12号]下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流,在后续工作及学习中如发现本文内容与实际情况有所偏差,将会完善该博文内容. 正文: RPM常用命令中的各种缩写选项,其实是有依据的,弄明白之后,其实很好玩,我们可以参考下方:q=queryp=packagei=infol=listf=filec=conf... 一:查看系统已

自己编译生成k8s的rpm包

我指的是以下几个安装包: -rw-r--r--. 1 root root 8976134 Jul 13 10:19 kubeadm-1.7.0-0.x86_64.rpm-rw-r--r--. 1 root root 9362110 Jul 13 10:19 kubectl-1.7.0-0.x86_64.rpm-rw-r--r--. 1 root root 17238982 Jul 13 10:19 kubelet-1.7.0-0.x86_64.rpm-rw-r--r--. 1 root root

通过nginx源码包制作rpm包

目录 目录... 1 版权声明:... 2 文档信息:... 2 一.通过nginx源码包制作rpm包... 2 1.制作前环境准备:... 3 2.创建普通用户... 3 二.编写spec规则... 3 1.在模板里添加规则... 3 2.关于保存*.spec报错的解决... 4 2.1解决办法:... 5 2.2使用rpmbuild命令生成 rpm包... 5 三.在其他主机测试rpm包... 5 1. 需要按照依赖包... 5 2. 上传并安装nginxRPM包... 5 3. 查看端口开

Linux中rpm包管理器

包全名: 1.操作的包是没有安装的软件包时,使用全名,而且要注意路径 2.例如:jdk-8u131-linux-x64.rpm包名: 1.操作的是已经安装好的软件包,使用包名,是搜索/var/lib/rpm/中的文件数据库 2.例如:jdk-8u131-linux-x64 1.安装 rpm -ivh jdk-8u131-linux-x64.rpm 参数:-ivh 说明:安装.显示信息.显示进度 备注: a.用rpm命令安装的时候,需要跟包全名 b.rpm安装过程中,可能会出现依赖的关系,不让你装

自动化部署必备技能—定制化RPM包

这里也不介绍rpmbuild这个打包工具了,想了解的朋友自行谷歌百度.但我不建议大家花太多的时间去学习这个命令,比较晦涩,而且我会在下面介绍更简单的命令. FPM打包工具 FPM的作者是jordansissel FPM的github:https://github.com/jordansissel/fpm FPM功能简单说就是将一种类型的包转换成另一种类型. 安装fpm依赖: yum install -y  openssl* yum install -y gcc* yum install -y r

使用源码文件简单制作RPM包

实验环境: 实验的系统:Centos7.2_x86.64 源码包文件1:fastdfs-master 源码包文件2:libfastcommon-master 去github作者的站点克隆上面两个源码包文件 git clone https://github.com/happyfish100/fastdfs.git git clone https://github.com/happyfish100/libfastcommon.git 查看源码文件版本并修改文件名 -libfastcommon-mas

fpm 制作rpm包

简介 fpm:对包的类型进行转换,从一种类型转换到另一种类型 1安装环境 fpm是ruby写的,系统环境需要rbuy yum install -y ruby ruby-devel rubygems rpm-bu ild 2 安装fpm gem install fpm 3.常用语法 常用命令: -a 系统架构名称,如果是noarch则为'-a all' 或者 '-a native' -s:指定源类型 -t:指定目标类型,即想要制作为什么包 -n:指定包的名字 -v:指定包的版本号 -C:指定打包的